• XSS.stack #1 – первый литературный журнал от юзеров форума

Убрать зависимость dll из redistributable

Exfazo

(L3) cache
Забанен
Регистрация
29.01.2021
Сообщения
268
Решения
1
Реакции
37
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, работаю в visual studio 2013. Проблему решил пока что изменив ключи во вкладке code generation, runtime library(/MD изменил на /MT), но теперь скомпилированный exe весит не 7 кб, а 70 кб. Можно ли проблему исправить по другому, что бы вес файла почти не менялся?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Полностью отрубить CRT и при необходимости использовать его динамически.Тогда вес еще меньше будет.
ты про то что бы через loadlibrary загружать dll и через getprocaddress дергать функции?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Полностью отрубить CRT и при необходимости использовать его динамически.Тогда вес еще меньше будет.
Или не так тебя я понял. я не юзаю crt я на чистом винапи
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Есть несколько вариантов
1. Подключить msvcrt.lib с ХР, лучше всего из DDK ; в настройках линкера где General->Additional Library Dirs удалить все и указать путь к lib файлу, это будет примерно так C:\WinDDK\ваша_версия\lib\Crt\i386;%(AdditionalLibraryDirectories ;
2. Не помню как называется опция - use instrinics functions, тогда вместо memset memcpy и подобного компилер добавит асм-вставки; ес-но нужно добавить /NODEFAULTLIB и указать свою точку входа (а также выпилить исключения)
3. Не использовать студию вообще, взять к примеру Pelles C - он умеет генерировать компактный код без лишних зависимостей и гемора
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Есть несколько вариантов
1. Подключить msvcrt.lib с ХР, лучше всего из DDK ; в настройках линкера где General->Additional Library Dirs удалить все и указать путь к lib файлу, это будет примерно так C:\WinDDK\ваша_версия\lib\Crt\i386;%(AdditionalLibraryDirectories ;
2. Не помню как называется опция - use instrinics functions, тогда вместо memset memcpy и подобного компилер добавит асм-вставки; ес-но нужно добавить /NODEFAULTLIB и указать свою точку входа (а также выпилить исключения)
3. Не использовать студию вообще, взять к примеру Pelles C - он умеет генерировать компактный код без лишних зависимостей и гемора
1 вариант работает!
 
Или не так тебя я понял. я не юзаю crt я на чистом винапи
Ты его юзаешь, но в форме либы.CRT это не только набор функций, это еще и обертка над твоим кодом, которая как раз добавляет кб.И тем более, лучше отрубить CRT, если ты пишешь на чистом винапи
 
ты про то что бы через loadlibrary загружать dll и через getprocaddress дергать функции?
Да, но CRT-шные, если нужны.И перед этим отрубить сам CRT.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну и следует заметить, что функции из msvcrt.dll не соотвествуют стандартам Це/Посикса, это надо иметь ввиду, если вдруг их используешь. Например, *printf функции из msvcrt.dll не умеют форматировать 64-битные целые и тд.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх