在C,Pascal和C中,可以使用FormatMessage函数来检索与COM HRESULT错误代码对应的“友好”错误消息.
This question包含演示C方法的示例代码.当然可以构建一个托管C程序集来为C#和VB.NET代码执行此功能,但我想知道:有没有办法使用.NET系统库转换COM错误代码?
解决方法
FormatMessage已在Win32Exception内部使用.例如:
using System; class Program { static void Main(string[] args) { var ex = new System.ComponentModel.Win32Exception(unchecked((int)0x80004005)); Console.WriteLine(ex.Message); Console.ReadLine(); } }
务必避免绕过CLR在其COM互操作层中完成的正常HRESULT检查.它使用IErrorInfo从COM服务器获取丰富的错误文本.这会让你得到“真正的”错误信息,而不是通用信息.
原文地址:https://www.jb51.cc/csharp/243889.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。