如何用Delphi 6的Format()函数正确打印使用十六进制格式的HRESULT?

更新于
2026-10-06 04:36:34
1阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计221个文字,预计阅读时间需要1分钟。

我有一个使用DSPACK组件库的Delphi 6应用程序。只有当特定的DirectShow操作失败时,该库才会在调试模式下打印错误日志行。相关源代码行如下:format('Error+00lX+from+FillBuffer! ! !',[Result])。不幸的是,这一行代码存在问题。

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

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

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

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

检查此样本

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

本文共计221个文字,预计阅读时间需要1分钟。

我有一个使用DSPACK组件库的Delphi 6应用程序。只有当特定的DirectShow操作失败时,该库才会在调试模式下打印错误日志行。相关源代码行如下:format('Error+00lX+from+FillBuffer! ! !',[Result])。不幸的是,这一行代码存在问题。

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

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

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

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

检查此样本

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