在MFC工程(包括单文档多文档基于对话框MFC DLL等)调试程序时可以使用trace宏来输出相关变量的值在Win 工程(包括Win Application和Win DLL)只能使用OutputDebugString函数来输出相关变量值但是我觉得OutputDebugString比起trace宏有很大的不足OutputDebugString不能像trace宏一样格式化输出只能输出字符串而且糟糕的是Win 工程不能使用MFC的CString类构造格式化输出字符串为此我上网搜了一些资料找到了在Win格式化输出的方法具体就是构造一个类似C语言的printf函数DebugString具体代码如下 #ifdef _DEBUG void WINAPI DebugString(LPCSTR format ) { va_list arglist; char buffer[]; va_start (arglistformat); vsprintf(buffer format arglist); va_end (arglist); strcat(buffer \t); OutputDebugString (buffer); } #endif 代码说明 char buffer[] 为格式化输出字符串的长度应该根据你要输出的变量值合理设置strcat(buffer \t); // 调用该函数后在output窗口中输出字符串后跳到下一个tab位置可以换为换行符 测试代码 #include <windowsh> #include <stdioh> #ifdef _DEBUG void WINAPI DebugString(LPCSTR format ) { va_list arglist; char buffer[]; va_start (arglistformat); vsprintf(buffer format arglist); va_end (arglist); strcat(buffer \n); OutputDebugString (buffer); } #endif int main(int argc char* argv[]) { int i; for (i=; i<; i++) DebugString(Hello: %d i); return ; } |