gpt4 book ai didi

c# - 在 C# 中翻译 COM 错误代码

转载 作者:太空狗 更新时间:2023-10-29 21:25:01 26 4
gpt4 key购买 nike

在 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 服务器获取丰富的错误文本。这会让你得到“真正的”错误信息,而不是一般的错误信息。

关于c# - 在 C# 中翻译 COM 错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com