информационная безопасность
без паники и всерьез
 подробно о проекте
Rambler's Top100Портрет посетителяSpanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Модель надежности отказоустойчивой... 
 Неприятные уязвимости в роутерах... 
 Chrome отмечает десятилетие редизайном 
 Foreshadow продолжает дело Meltdown... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / FAQ / программирование
FAQ
главная
операционные системы
sysadmin
программирование
теория
общие вопросы





При компиляции программы, фактически состоящей лишь из одного вызова функции MessageBox, получается исполняемый файл размером 30 Кб. Как уменьшить его размер?
:-)
Опубликовано: dl, 25.12.03 14:27

Такой размер файл имеет потому, что в него включается код стандартной библиотеки времени выполнения языка C/С++ (Standard C/С++ Run-Time Library, далее – RTL).

Если стандартная библиотека C/C++ Вам не нужна, и Вы целиком напишите программу на Windows API, то можно отключить RTL. Для этого на вкладке Link в окне Project Settings (для компилятора Visual C++) необходимо:

  1. Включить опцию Ignore all default libraries (можно также использовать ключ /NOD или /NODEFAULTLIB в командной строке линкера).
    После этого в программе нельзя будет пользоваться функциями библиотеки C/C++ (printf, strcpy, malloc и т.д.), а следует использовать только Windows API.
  2. Указать линкеру главную функцию программы в поле Entry Point Symbol (или использовать ключ линкера /ENTRY)
  3. Заметим, что, в отличие от привычных WinMain/main, в нашу главную функцию не передаются параметры hInstance и указатель на командную строку процесса. Их придется получить через Windows API (функции GetModuleHandle, GetCommandLine; может пригодиться и CommandLineToArgW).




обсудить  |  все отзывы (5)

[6458]



Rambler's Top100
Рейтинг@Mail.ru



  Copyright © 2001-2018 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach