如何处理Win32错误消息的占位符?

Dav*_*nan 8 winapi

当程序遇到Win32错误时,我想提供有意义的错误消息.我打电话GetLastError,然后FormatMessage.但是一些错误消息包含占位符.例如,ERROR_BAD_EXE_FORMAT有文字:

%1不是有效的Win32应用程序.

据推测,%1意味着被无效的模块名称所取代.我怎样才能影响替换呢?

请注意,我理想地喜欢一般解决方案,因为我注意到占位符存在许多错误.我可以在文档中看到以下消息:

  • 驱动器中有错误的软盘.将%2(卷序列号:%3)插入驱动器%1.
  • 操作系统无法运行%1.
  • 此版本的%1与您正在运行的Windows版本不兼容.检查计算机的系统信息,然后与软件发行商联系.
  • 图像文件%1已签名,无法修改.
  • 系统无法在%2的消息文件中找到消息号0x%1的消息文本.
  • ... 等等.

Dav*_*nan 2

我认为 Raymond Chen 在他的博客评论中有效地回答了这个问题,他写道:

系统错误消息包含%1您只需要根据具体情况“了解”的插入内容,这也让我感到烦恼。