电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Win32 DLL的一个调试心得


发布日期:2019/6/26
 

在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 ;

}

上一篇:绘制二维图像的开源类库ZedGraph

下一篇:Windows群集开发:6)编写资源DLL