使用十六进制格式的Delphi 6的Format()语句打印HRESULT的正确格式说明符?

时间:2011-11-22 03:10:36

标签: delphi format hresult

我有一个使用DSPACK组件库的Delphi 6应用程序。只要特定的DirectShow操作失败,该库就会在调试模式下打印日志行。这是相关的源代码行:

format('Error %08lX from FillBuffer!!!', [Result])

不幸的是,这一行会在SysUtils.ConvertErrorFmt()中导致EConvertError异常。尝试以十六进制格式正确打印HRESULT时使用的正确格式说明符是什么?

1 个答案:

答案 0 :(得分:7)

您传递给函数的令牌(%08lX)无效,要将值格式化为十六进制,您必须使用X字符,并指定长度使用点后跟像%.8X

这样的所需字符数

检查此样本

format('Error %.8X from FillBuffer!!!', [Result])