如何使用“DOS EXE”标头标志== false编译C ++项目?

时间:2010-12-14 10:57:52

标签: windows visual-studio visual-studio-2010 visual-c++

我有一个VS2010 C ++ exe项目,我想编译,以便exe的标题中的“DOS EXE”标志设置为false。这(希望)可以避免在运行可执行文件时创建CONHOST.exe。 exe没有UI。

目前,我在启动时调用::FreeConsole以摆脱CONHOST.exe进程,但如果首先从未创建CONHOST.exe,则会更喜欢它。

我该怎么做?

在选定的答案之后,我通过添加一个调用现有main的WinMain来修复我的代码,如下所示:

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
  int argc;
  LPWSTR* argv = CommandLineToArgvW(pCmdLine, &argc);
  _tmain(argc, argv);
  LocalFree(argv);
}

1 个答案:

答案 0 :(得分:2)

您可以尝试将链接器选项中的SubSystem值从CONSOLE更改为WINDOWS。这将阻止编译器在二进制文件中生成支持控制台的代码。 请注意,您需要使用WinMain()函数而不是main()