在C#中翻译COM错误代码

前端之家收集整理的这篇文章主要介绍了在C#中翻译COM错误代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在C,Pascal和C中,可以使用FormatMessage函数来检索与COM HRESULT错误代码对应的“友好”错误消息. This question包含演示C方法的示例代码.当然可以构建一个托管C程序集来为C#和VB.NET代码执行此功能,但我想知道:有没有办法使用.NET系统库转换COM错误代码

解决方法

FormatMessage已在Win32Exception内部使用.例如:
  1. using System;
  2.  
  3. class Program {
  4. static void Main(string[] args) {
  5. var ex = new System.ComponentModel.Win32Exception(unchecked((int)0x80004005));
  6. Console.WriteLine(ex.Message);
  7. Console.ReadLine();
  8. }
  9. }

输出:未指定的错误

务必避免绕过CLR在其COM互操作层中完成的正常HRESULT检查.它使用IErrorInfo从COM服务器获取丰富的错误文本.这会让你得到“真正的”错误信息,而不是通用信息.

猜你在找的C#相关文章