mfc - 如何在 Release 模式下启用 TRACE 宏?

标签 mfc macros trace

TRACE macro 可用于在 中编译代码时向调试器输出诊断消息。调试 模式。我在 中需要相同的消息发布 模式。有没有办法实现这一目标?

(请做 而不是 浪费你的时间讨论为什么我不应该在 Release模式下使用 TRACE :-)

最佳答案

实际上,TRACE 宏比 OutputDebugString 灵活得多。它需要一个 printf() 样式的格式字符串和参数列表,而 OutputDebugString 只需要一个字符串。为了在 Release模式下实现完整的 TRACE 功能,您需要执行以下操作:

void trace(const char* format, ...)
{
   char buffer[1000];

   va_list argptr;
   va_start(argptr, format);
   wvsprintf(buffer, format, argptr);
   va_end(argptr);

   OutputDebugString(buffer);
}

关于mfc - 如何在 Release 模式下启用 TRACE 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622/

相关文章:

javascript - 可以使用 "alias"或 "macro"来调用 HTML 中的 JavaScript 函数吗?

r - 在 R 的浏览器中添加跟踪/断点

wpf - 如何防止 WPF 对话框中的键盘事件渗透到调用它的 MFC 应用程序?

c++ - CListCtrl和CImageList访问HBITMAP进行修改

c++ - 无法观看 TVN_SELCHANGED

c++ - MFC 相当于 Qt QVBoxLayout 小部件

c++ - 这样的宏有什么用?

C++ (gcc) 预处理器宏 : Automatic function generation - OpenGL Shader "Swizzle" Syntax

c# - 跟踪方法执行时间

c# - nlog:使用 "Trace"输出使 Logger.Error() 抛出异常 - 如何修复?