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

标签 delphi format hresult

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

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

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

最佳答案

您传递给函数的标记 (%08lX) 无效,要将值格式化为十六进制,您必须使用 X 字符,并指定长度使用一个点,后跟所需字符的数量,如下所示 %.8X

检查此示例

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

关于delphi - 使用 Delphi 6 的 Format() 语句以十六进制格式打印 HRESULT 的格式说明符是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8221505/

相关文章:

delphi - 删除用纯汇编编写的函数的序言

python - 如何使用字符串格式处理不平衡括号

c# - Excel IF 语句导致错误 : Exception from HRESULT: 0x800A03EC

c# - 如何以编程方式区分不同的 IOException?

delphi - 无效的指针操作 - Delphi XE

delphi - 如何从 Google 搜索结果中提取目标 URL?

windows - 如何抽取 COM 消息?

mysql 在将数据集导出到 csv 文件时从文本字段中删除 `CR` 或 `0D`

HTML:时间格式中的字母 T - 有什么用?