使用OutputDebugString输出调试信息
OutputDebugString输出调试信息的时候一般是在DEBUG模式下,不过如果不加控制条件,在release模式下也可以使用
OutputDebugStringA输出普通字符串的数据信息
OutputDebugStringW输出宽字节类型的数据信息
本文以普通字符串类型举例
1、定义一个宏,即你要输出什么样的信息本例格式是"NFO--"+你要输出的信息,
OUTINFO_0_PARAM表示输出纯字符串,OUTINFO_1_PARAM表示可以携带一个参数,以此类推2、3
1 //输出调试信息--在DebugView软件里面看调试信息 2 #define OUTINFO_0_PARAM(fmt) {CHAR sOut[256];CHAR sfmt[50];sprintf_s(sfmt,"%s%s","INFO--",fmt);sprintf_s(sOut,(sfmt));OutputDebugStringA(sOut);} 3 #define OUTINFO_1_PARAM(fmt,var) {CHAR sOut[256];CHAR sfmt[50];sprintf_s(sfmt,"%s%s","INFO--",fmt);sprintf_s(sOut,(sfmt),var);OutputDebugStringA(sOut);} 4 #define OUTINFO_2_PARAM(fmt,var1,var2) {CHAR sOut[256];CHAR sfmt[50];sprintf_s(sfmt,"%s%s","INFO--",fmt);sprintf_s(sOut,(sfmt),var1,var2);OutputDebugStringA(sOut);} 5 #define OUTINFO_3_PARAM(fmt,var1,var2,var3) {CHAR sOut[256];CHAR sfmt[50];sprintf_s(sfmt,"%s%s","INFO--",fmt);sprintf_s(sOut,(sfmt),var1,var2,var3);OutputDebugStringA(sOut);}
2、使用例子
1 OUTINFO_0_PARAM("这是调试信息-0--\n"); 2 OUTINFO_1_PARAM("这是调试信息-1--%d\n",1); 3 OUTINFO_2_PARAM("这是调试信息-2--%d,%d\n",1,2); 4 OUTINFO_3_PARAM("这是调试信息-3--%d,%d,%d\n",1,2,3);
3、查看输出信息
下载调试工具DebugView,管理员身份运行DebugView.exe,然后就可以查看到你输出的信息了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构