65,170
社区成员




我正在使用VS 2022修改一个用c++代码写成的大型项目。代码最终在运行后会生成一个.exe文件,点击exe就可以打开gui界面的软件进行操作了。
我之前已经使用 cmake 和 VS 成功使得代码可以在本地运行。
出于需要,我是用release模式进行修改代码和调试的。
我的问题:
1. 为什么 生成一个.exe文件的c++代码 在运行后 是自行生成.exe文件,并且不显示黑窗控制台?有 cout 的代码不是都是显示黑窗控制台吗?(能不能讲讲原理,我不想听 像是 “生成exe后代码就结束了”之类的话)
2. 我需要使用std::cout进行调试信息的输出,怎么才能够让std::cout输出的调试信息显示在黑窗控制台?(我知道可以重定向cout的输出到自己创建的.log,但是我需要让std::cout输出的调试信息显示在黑窗控制台)
项目类型可以是
Windows桌面应用程序(默认用GUI窗口交互)
Windows控制台应用程序(默认用cmd黑窗交互)
可以使用一些技巧,让Windows桌面应用程序项目也支持用cmd黑窗交互:
https://yukwan.cn/2024/02/02/24fabed33a33/
你可以利用AllocConsole/FreeConsole关联一个控制台窗口,然后就可以使用_tprintf()/std::cout之类的来输出调试信息了。