Я создаю простое приложение C ++, необходимое для использования инструментов сборки Visual C ++ из командной строки, и иногда приложение требуется как приложение Gui, а иногда как консольное приложение.
Контрольный код, для которогоГенерируемая версия находится здесь:
int WinGUI = 1;
// The following if statement determines whether we are compiling a console
// application, like python.exe, or a windows gui application, like wpython.exe
#if WinGui == 1
int APIENTRY wWinMain(
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow
) {
// define aliases for the gui version of argc and argv
int argc = __argc;
wchar_t **argv = __wargv;
#else
int wmain(int argc, wchar_t **argv) {
#endif
Я видел несколько сообщений об использовании CFLAGS с make-файлами, но я не уверен, как перевести это в то, что я делаю.
У меня естьпакетный скрипт, который устанавливает среду и затем создает этот исполняемый файл с этой строкой:
cl /EHsc /DUNICODE /D_UNICODE %APPNAME%.cpp /Fe%APPNAME%
Можно ли установить переключатель строки Comamnd для управления этой директивой препроцессора и, таким образом, для определения, является ли версия командной строки или графическим интерфейсомиз исполняемого файла построен?