У меня есть файл заголовка "MainEntryPoint.h", который содержит следующий текст:
#pragma once
#if defined _MSC_VER
#if !defined _WINDLL
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#endif
#endif
Я #include этот файл в файл main.cpp любого проекта, который
- должен быть
windows
, а не консольным приложением
- Как я занимаюсь кросс-платформенной работой, я предпочитаю использовать стандартную (
main()
) точку входа C/C++ для всех моих проектов.
(Защитный макрос автоматически гарантирует, что он применим только к сборкам DevStudio и исключает беспорядок с точкой входа при построении dll).
Как это сделать? Я вошел: #pragma комментарий (линкер, "/ Subsystem: WINDOWS") , и заменить "ИНТ основной()" с: INT APIENTRY WinMain (HINSTANCE HINSTANCE, HINSTANCE hPrevInstance, LPSTR lpCmdLine, междунар nCmdShow) , но он все еще не работает ... – Claudiu
Два способа, как предлагает @Alex Farber, вы можете сделать это через редактор свойств Visual Studio - вы смотрите в настройках компоновщика для проекта на C++. Другое дело, если вы строите вручную, когда вы вводите «LINK /out:exename.exe obj1.obj obj2.obj» append/SUBSYSTEM: WINDOWS в эту строку. – 2010-08-18 12:16:09
Для этого вам не нужно менять основную функцию на WinMain. По крайней мере, не нужно. –