установить параметры препроцессора MSVC из аргументов командной строки - PullRequest
0 голосов
/ 04 июня 2018

Я создаю простое приложение 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 для управления этой директивой препроцессора и, таким образом, для определения, является ли версия командной строки или графическим интерфейсомиз исполняемого файла построен?

...