加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中翻译COM错误代码

发布时间:2020-12-15 08:31:29 所属栏目:百科 来源:网络整理
导读:在C,Pascal和C中,可以使用FormatMessage函数来检索与COM HRESULT错误代码对应的“友好”错误消息. This question包含演示C方法的示例代码.当然可以构建一个托管C程序集来为C#和VB.NET代码执行此功能,但我想知道:有没有办法使用.NET系统库转换COM错误代码?
在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服务器获取丰富的错误文本.这会让你得到“真正的”错误信息,而不是通用信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读