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

3

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

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

很不幸,这行代码会导致EConvertError异常在SysUtils.ConvertErrorFmt()中抛出。当尝试以十六进制格式正确打印HRESULT时,应该使用哪个正确的格式说明符?
1个回答

7
您传递给函数的令牌(%08lX)是无效的。要将值格式化为十六进制,请使用X字符,并使用点后跟所需字符数的计数来指定长度,如下所示:%.8X。请参考以下示例:
format('Error %.8X from FillBuffer!!!', [Result])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接