Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Включение подставляемых функций вместо функций из рантайма

7
29 декабря 2014 года
@pixo $oft
3.4K / / 20.09.2006
В приложении используется одна функция ceil(), из-за чего в зависимостях появляется MSVCR100. Насколько мне известно, можно использовать подставляемые функции, которые заменят вызов функции из библиотеки на развёрнутый код. Но какими бы ключами я не оперировал, исключить вызов функции из библиотеки у меня не получается. Подскажите, каким образом я могу это сделать?
465
29 декабря 2014 года
QWERYTY
595 / / 25.03.2012
Код:
double MyCeil(double x)
{
double rest;

rest = x - int(x);
if (rest == 0) {
return int(x);
} else {
return int(x) + 1;
}

}
Не уж то вот это чересчур?
260
29 декабря 2014 года
Ramon
1.1K / / 16.08.2003
Откройте для себя статическую линковку.
7
29 декабря 2014 года
@pixo $oft
3.4K / / 20.09.2006
Я бы с радостью, но в оцпиях студии есть только динамическая. А ещё эта статическая может не только то, что мне нужно, прилинковать, но и что не нужно. Всё-таки хотелось бы вспомнить, как делаются inline-функции (вернее, как они форсируются). Поиск на MSDN и не только ничего не дал.
465
29 декабря 2014 года
QWERYTY
595 / / 25.03.2012
А почему не сделать свою функцию?
7
29 декабря 2014 года
@pixo $oft
3.4K / / 20.09.2006
Это будет чересчур :D Незачем изобретать велосипед, когда реализация уже есть. Мне вроде даже когда-то удавалось так сделать (тоже стояла задача отвязки от рантайма, потому что требовалась только пара вещественных функций), но я не могу вспомнить, в каком проекте, а сейчас всякие варианты перебирал и читал MSDN, но ничего не помогло.
7
29 декабря 2014 года
@pixo $oft
3.4K / / 20.09.2006
Премного благодарен. А я что-то совсем заработался ☺
465
29 декабря 2014 года
QWERYTY
595 / / 25.03.2012
Воу, погоди!

Это просто демонстрация, а не рабочий код.
В идеале нужно учитывать скольки разрядный комп, и дописать для отрицательных значений.
465
29 декабря 2014 года
QWERYTY
595 / / 25.03.2012
У меня нет майкрософтовской студии, но в эмбаркадеровской это выглядит примерно так:

Код:
double MyCeil(double x)
{
double rest;

rest = x - INT64(x);
if (x >= 0) {
if (rest == 0) {
return x;
} else {
return INT64(x) + 1;
}
} else {
return x - rest;
}

}
Если не будет проблем с INT64 то всё должно быть норм.
7
29 декабря 2014 года
@pixo $oft
3.4K / / 20.09.2006
Да у меня здесь всё сугубо положительное и 32-разрядное, поэтому спасибо за старания :) Ну и различий в этом коде для студий быть не должно, я думаю.
260
30 декабря 2014 года
Ramon
1.1K / / 16.08.2003
Прошу прощения за нетактичный вопрос. Вы это серьёзно, люди?
7
30 декабря 2014 года
@pixo $oft
3.4K / / 20.09.2006
Что именно тебе не нравится?
260
30 декабря 2014 года
Ramon
1.1K / / 16.08.2003
Тотальное игнорирование/незнание того, что происходит в данном случае при кодогенерации и линковке, а соответственно и занятие писаниной на пустом месте. Да похоже и просто отсутствие понимания основополагающих принципов.
7
30 декабря 2014 года
@pixo $oft
3.4K / / 20.09.2006
Ну нет, про статическую и динамическую линковку мне известно, но как в студии это сделать — хз. Может, ты прольёшь свет на что-то, чего не знаем мы.
260
30 декабря 2014 года
Ramon
1.1K / / 16.08.2003
Группа флагов /MD /MT, для любящих GUI - C/C++\Code Generation\Runtime Library.
Хотя казалось бы...
Обсасывалось неоднократно в том числе и на этом форуме.
327
01 января 2015 года
UserNet2008
748 / / 03.04.2010
Цитата:
Насколько мне известно, можно использовать подставляемые функции, которые заменят вызов функции из библиотеки на развёрнутый код.


Нет такие функции - на то и есть DLL это компиляция в машинный код, но есть Disassembler как вариант IDA, здесь надо ,знать хорошо Assembler т.к разговор идёт на уровне адресов. А потом конвертировать в код(я говорю про (C++) - это не есть проблема(+- на знания С++).

Цитата:
Но какими бы ключами я не оперировал, исключить вызов функции из библиотеки у меня не получается.


Честно не очень понятно об чём идёт разговор???
В данном контексте можно оперировать можно между киоском or Market
Or типа палёт на пальцах - может и будет ответ.
Хотя ответ тут(+1)

Цитата: Ramon
Прошу прощения за нетактичный вопрос. Вы это серьёзно, люди?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог