Какую практическую разницу имеет Linker / SUBSYSTEM в серверном приложении? - PullRequest
0 голосов
/ 25 февраля 2020

Я только недавно обнаружил этот параметр компоновщика, и меня интересует приложение, которое не имеет пользовательского интерфейса и работает на сервере, имеет ли какое-то значение то, что я использую?

Мне очень нравится иметь консоль для Dev-тестирование, когда я запускаю приложение из отладчика или вручную из командной строки, поэтому мне интересно, будет ли / CONSOLE иметь какие-либо отличия для моей программы, кроме точки входа (основной VS WinMain), когда развернут для реального, то есть с точки зрения COM, который мы использовать совсем немного?

Действительно ли имеет значение, какую подпись точки входа я использую? Если я соберу / CONSOLE для удобства тестирования, будут ли у него какие-либо побочные эффекты?

enter image description here

1 Ответ

0 голосов
/ 26 февраля 2020

/SUBSYSTEM:CONSOLE для консольных приложений

/SUBSYSTEM:WINDOWS для приложений без консоли.

Для более подробной информации, я предлагаю вам обратиться к Do c: / SUBSYSTEM (Укажите подсистему)

Точка входа по умолчанию для /subsystem:console - mainCRTStartup, для /subsystem:windows - WinMainCRTStartup. Просто так получилось, что CRT реализует эти две функции, и эти реализации вызывают main и WinMain соответственно. Таким образом, main и WinMain становятся точкой входа для программиста, с которой компоновщику практически нечего делать.

Я предлагаю вам обратиться к Do c: / ENTRY (символ точки входа)

...