OutputDebugString调试字符串输出及Delphi中调用显示最大字符长度限制为1024
OutputDebugString 是很常用的调试函数, 其作用是将指定的调试字符串, 在运行时输出到特定的位置, 以便我们能获知程序执行的情况. 其 MSDN: http://msdn.microsoft.com/en-us/library/windows/apps/aa363362(v=vs.85).aspx
其中比较重要的两点:
1. Applications should send very minimal debug output...
2. OutputDebugStringW converts the specified string based on the current system locale information and passes it to OutputDebugStringA to be displayed. As a result, some Unicode characters may not be displayed correctly.
在DELPHI XE2中使用发现了如下的bug:(当然导致这个故障的本身不是OutputDebugString函数本身,而是DelphiXE2 IDE问题所致。)
偶然发现WIN32 API函数 OutputDebugString调试字符串在Delphi XE2 控制台(Event Log)输出有1023字节长度限制。超出的部分显示不出来。如果用Debugview来接收就不会缺少字符。挺遗憾!
小技巧:
OutputDebugString(Format('MyDebug:%d%s',[600019,'XXXXXXString']));
然后在 DbgView 设置一个过滤:MyDebug:,只抓自己程序的输出,用起来就方便多了
Outputdebugstring是window下的api函数,支持unicode和ascii编码,可以在debug和release下显示信息
重要:
Outputdebugstring使用包含头文件window.pas即可,调试程序时若在debugview下显示不了调试信息,则需要关闭其它的调试器,比如在XE2 IDE中按F9运行程序时,该Debug信息只能显示在Event log中。Debugview中则无法显示。如果要在Debugview中显示,则要用非调试模式运行。这个要记住,低于1024字符的输出是没有问题,比如一般的变量跟踪,太长的拼装SQL语句超过1024长度不行。
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751939.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?