如何在发布模式下启用TRACE宏? [英] How to enable the TRACE macro in Release mode?
问题描述
TRACE宏 可用于在 Debug 模式下编译代码时将诊断消息输出到调试器.在发布模式下,我需要相同的消息.有没有办法做到这一点?
The TRACE macro can be used to output diagnostic messages to the debugger when the code is compiled in Debug mode. I need the same messages while in Release mode. Is there a way to achieve this?
(请不要浪费您的时间讨论为什么我不应该在发布模式下使用TRACE:-)
(Please do not waste your time discussing why I should not be using TRACE in Release mode :-)
推荐答案
实际上,TRACE宏比OutputDebugString灵活得多.它采用printf()样式格式的字符串和参数列表,而OutputDebugString仅采用单个字符串.为了在发布模式下实现完整的TRACE功能,您需要执行以下操作:
Actually, the TRACE macro is a lot more flexible than OutputDebugString. It takes a printf() style format string and parameter list whereas OutputDebugString just takes a single string. In order to implement the full TRACE functionality in release mode you need to do something like this:
void trace(const char* format, ...)
{
char buffer[1000];
va_list argptr;
va_start(argptr, format);
wvsprintf(buffer, format, argptr);
va_end(argptr);
OutputDebugString(buffer);
}
这篇关于如何在发布模式下启用TRACE宏?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!