VC ++ Консольное приложение Win32 против Конфигурации приложения Win32 - PullRequest
1 голос
/ 21 июня 2011

извиняюсь, если это немного расплывчато, но у меня нет обзора, чтобы быть более резким ... Я изучал программирование на Windows C ++ некоторое время и начал с консольных приложений (без лишних вопросов) и сейчаспрогрессировал до приложений Win32 (DirectX и т. д.).Я думаю, что у меня есть разумное представление о том, что происходит при запуске приложения Win32: WinMain, настройка CallBacks для цикла сообщений и т. Д. Однако я понял, что понятия не имею, что происходит при создании консольного приложения Win32.Я определяю функцию _tmain в VC ++ внутри конфигурации проекта Console App, которая выполняется консольным окном, которое «волшебным образом» включается и исчезает с необходимой связью с различными iostream, например.CIN / соиЬ.Предположительно, все это настраивается с помощью выбранной мной опции сборки проекта консольного приложения Win32 - однако беглый взгляд на параметры конфигурации в двух сборках на самом деле не проливает свет на разницу.Не могли бы вы предоставить / указать на резюме того, что происходит ...?Спасибо.

1 Ответ

1 голос
/ 21 июня 2011

Это опция ссылки подсистемы для цели ссылки C ++.

http://msdn.microsoft.com/en-us/library/fcc1zstk.aspx

Самые полезные виды:

CONSOLE

Win32-символьное приложение. Операционная система предоставляет консоль для консольных приложений. Если main или wmain определены для собственного кода, int main (массив ^) определен для управляемого кода, или вы полностью скомпилировали приложение, используя / clr: safe, по умолчанию используется CONSOLE.

1012 * POSIX * Приложение, которое работает с подсистемой POSIX в Windows NT. WINDOWS

Приложение не требует консоли, возможно потому, что оно создает свои собственные окна для взаимодействия с пользователем. Если WinMain или wWinMain определены для собственного кода, или WinMain (HISTANCE *, HINSTANCE *, char *, int) или wWinMain (HINSTANCE *, HINSTANCE *, wchar_t *, int) определены для управляемого кода, WINDOWS используется по умолчанию.

Эта опция также доступна в диалоговых окнах опций в Visual Studio, сейчас нет возможности предоставить скриншоты (см. Общие (?) Опции компоновщика)

...