我有一个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);
}
答案 0 :(得分:2)
您可以尝试将链接器选项中的SubSystem值从CONSOLE更改为WINDOWS。这将阻止编译器在二进制文件中生成支持控制台的代码。 请注意,您需要使用WinMain()函数而不是main()