Создаем пустой файл в VS, там ничего нет кроме вызова MessageBox, смотрим что в импорте, kernel32.dll куча функций которые я не использую, для чего они там?
в отладчик загрузи и помедитируй. пустой файл в VS по сути не содержит твоего кода. Но всё равно подключаются и инициализируются стандартые библиотеки, чтобы обеспечить поддержку базовых функций и операторов языка.
ну твой же файл не всегда будет "пустым", иначе зачем он такой нужен. Рано или поздно ты добавляешь СВОЙ код, который будет использовать стандартные библиотеки Win32 API, а они уже подключены по умолчанию для твоего удобства.
plutos пишет: ну твой же файл не всегда будет "пустым", иначе зачем он такой нужен. Рано или поздно ты добавляешь СВОЙ код, который будет использовать стандартные библиотеки Win32 API, а они уже подключены по умолчанию для твоего удобства. Вы знаете, как то странно получается. Я компилирую exe в Release, а это означает что код конечный, и ничего добавляться не будет. Однако в kernel32.dll идет список из примерно 60 функций, ни одну из которых я не использую. а вот в user32.dll только одна запись MessageBoxA, ее то я и применяю.
) Ты забудь вообще такое слово - "я не использую". При составлении программ в студии это она тебя использует по полной схеме. Ты там такой махонький винтик - а программа живёт сама по себе, сама себя и обслуживает. Она сама знает, что ей надо
dosprog Вот копаем на форумах Причины ожирения программы: Одна из самых главных причин это CRT (C Runtime Library) которая докидывает довольно много кода в исполняемый файл, даже когда нам это не нужно. Полное избавление от CRT: Потребуется полный отказ от использования функций CRT, придется использовать только “скудный” WinAPI Выход есть? Или надо просто забить на VS?
Открывается гугл и элементарно собирается программа хоть на 2-3 кб и то из-за выравнивания исключительно с тем кодом, что ты сам написал, и только с тем импортом. Но естественно это будет чистый винапи без CRT.
Не проще посмотреть , а не бежать создавать очередную тему с вопросом который уже задавали тысячи раз. Остальные флаги там же и да, от некоторых тоже зависит размер.
Archer пишет: Открывается гугл и элементарно собирается программа хоть на 2-3 кб и то из-за выравнивания исключительно с тем кодом, что ты сам написал, и только с тем импортом. Но естественно это будет чистый винапи без CRT. Вы правы, после полного избавления от CRT, мой файл стал весить 1.5 кб , и импорт стал понятным и простым. Более того файл стал запускаться на любой системе независимо от флагов, /MD, /ML, /MT, /LD, потому как CRT больше нет. Отключение CRT помогает лучше понять что же напихано по умолчанию в исполняемый файл, ну и пригодится тому кому важны размеры. Всем большое спасибо за участие!