VS2012 - 如何在运行期间检查程序是否在调试时运行?
问题描述:
VS2012,C++项目。VS2012 - 如何在运行期间检查程序是否在调试时运行?
当我执行程序时,我可以使用“开始调试”或“无需调试即可开始”。
是否有可能在运行时检索该信息?
我的目标是创建一个log.txt文件,我想将该信息写入它。
答
VisualStudio生成_DEBUG
和NDEBUG
作为定义。你可以在编译时检查它。并且说你在运行时检查这个事实是错误的。编译完一次代码后,您将拥有一个带有或不带有调试符号的可执行文件。这意味着你只在编译时检查一个构建类型。
#ifdef _DEBUG
std::cout << "DEBUG\n";
#else
std::cout << "RELEASE\n";
#endif
编辑 你的情况,你可以调用IsDebuggerPresent()
功能(不要忘了包括WINDOWS.H),以确定运行的类型。
这不是我的问题..在这些模式中的每一个,你可以运行调试或不.. – brkeyal 2014-10-27 16:27:09
@brkeyal,对不起,我的坏。我已经更新了答案,希望它能提供帮助。 – antonpp 2014-10-27 16:44:40