Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Библиотека импорта
Посл.ответ Сообщение

Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 03 апреля 2017 00:48
· Личное сообщение · #1

Создаем пустой файл в VS, там ничего нет кроме вызова MessageBox, смотрим что в импорте, kernel32.dll куча функций которые я не использую, для чего они там?




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 03 апреля 2017 01:37
· Личное сообщение · #2

в отладчик загрузи и помедитируй.
пустой файл в VS по сути не содержит твоего кода. Но всё равно подключаются и инициализируются стандартые библиотеки, чтобы обеспечить поддержку базовых функций и операторов языка.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 03 апреля 2017 01:48
· Личное сообщение · #3

ну твой же файл не всегда будет "пустым", иначе зачем он такой нужен.
Рано или поздно ты добавляешь СВОЙ код, который будет использовать стандартные библиотеки Win32 API, а они уже подключены по умолчанию для твоего удобства.

-----
Give me a HANDLE and I will move the Earth.




Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 03 апреля 2017 21:46
· Личное сообщение · #4

plutos пишет:
ну твой же файл не всегда будет "пустым", иначе зачем он такой нужен.
Рано или поздно ты добавляешь СВОЙ код, который будет использовать стандартные библиотеки Win32 API, а они уже подключены по умолчанию для твоего удобства.

Вы знаете, как то странно получается. Я компилирую exe в Release, а это означает что код конечный, и ничего добавляться не будет. Однако в kernel32.dll идет список из примерно 60 функций, ни одну из которых я не использую. а вот в user32.dll только одна запись MessageBoxA, ее то я и применяю.




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 03 апреля 2017 21:55
· Личное сообщение · #5

zombi-vadim пишет:
kernel32.dll куча функций которые я не использую, для чего они там?


CRT

-----
IZ.RU




Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 03 апреля 2017 23:10
· Личное сообщение · #6

) Ты забудь вообще такое слово - "я не использую".
При составлении программ в студии это она тебя использует по полной схеме.
Ты там такой махонький винтик - а программа живёт сама по себе, сама себя и обслуживает.
Она сама знает, что ей надо



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 04 апреля 2017 00:10
· Личное сообщение · #7

dosprog Вот копаем на форумах
Причины ожирения программы:
Одна из самых главных причин это CRT (C Runtime Library) которая докидывает довольно много кода в исполняемый файл, даже когда нам это не нужно.
Полное избавление от CRT:
Потребуется полный отказ от использования функций CRT, придется использовать только “скудный” WinAPI
Выход есть? Или надо просто забить на VS?




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 04 апреля 2017 00:12
· Личное сообщение · #8

пиши на асме йопт
сможешь каждый байт контролировать и собирать свой же импорт вручную

| Сообщение посчитали полезным: difexacaw, sefkrd


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 04 апреля 2017 00:59
· Личное сообщение · #9

Открывается гугл и элементарно собирается программа хоть на 2-3 кб и то из-за выравнивания исключительно с тем кодом, что ты сам написал, и только с тем импортом. Но естественно это будет чистый винапи без CRT.



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 04 апреля 2017 01:18
· Личное сообщение · #10

Не проще посмотреть флаги, а не бежать создавать очередную тему с вопросом который уже задавали тысячи раз.
Остальные флаги там же и да, от некоторых тоже зависит размер.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 05 апреля 2017 20:01
· Личное сообщение · #11

Archer пишет:
Открывается гугл и элементарно собирается программа хоть на 2-3 кб и то из-за выравнивания исключительно с тем кодом, что ты сам написал, и только с тем импортом. Но естественно это будет чистый винапи без CRT.

Вы правы, после полного избавления от CRT, мой файл стал весить 1.5 кб , и импорт стал понятным и простым.
Более того файл стал запускаться на любой системе независимо от флагов, /MD, /ML, /MT, /LD, потому как CRT больше нет. Отключение CRT помогает лучше понять что же напихано по умолчанию в исполняемый файл, ну и пригодится тому кому важны размеры. Всем большое спасибо за участие!


 eXeL@B —› Вопросы новичков —› Библиотека импорта
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати