Анатомия C Run-Time, или Как сделать программу немного меньшего размера Страница 2. main или WinMain?
|
Страница 2 из 15 main или WinMain? Среди начинающих программистов можно услышать такое мнение: для консольной программы используется только функция main, а для оконной - WinMain. Это мнение, хотя и подтвержденное умолчаниями компилятора и линкера, в общем случае, является ошибочным. Чтобы немного развлечься, проведем эксперимент. Создадим файл test.cpp:
#include <windows.h>
int main() { MessageBox(0, "Hello from main()", "A test program", MB_OK); return 0; }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { MessageBox(0, "Hello from WinMain()", "A test program", MB_OK); return 0; }
| Внимание, вопрос: что появится на экране после запуска такой программы? Постарайтесь ответить на этот вопрос, не заглядывая в дальнейшее описание.
ПРИМЕЧАНИЕ Я не стал рассматривать еще два возможных варианта стартовой функции: wmain или wWinMain, предназначенных для проектов, компилируемых в Unicode. Кроме того, при создании DLL имеется еще один вариант стартовой функции - DllMain. | |