c语言中的IErrorInfo# 有一个C++ COM。它有时会在SomeMethod()上抛出一个exeption。C++ COM支持 ISUPPORICATIONFION,填写 IrRoReFiels。如何获取c#中的IErrorInfo.Description
此代码捕获错误,但其中没有cpp消息c语言中的IErrorInfo# 有一个C++ COM。它有时会在SomeMethod()上抛出一个exeption。C++ COM支持 ISUPPORICATIONFION,填写 IrRoReFiels。如何获取c#中的IErrorInfo.Description,c#,error-handling,C#,Error Handling,此代码捕获错误,但其中没有cpp消息 try { COM.SomeMethod() } catch (COMException exn) { string ACppErrorMessage = exn.message; outputError(ACppErrorMessage); } 根据说明,IErrorInfo的Description字段映射到异常对象的Message,如果HRESULT包含该信息,否则它只填充默认值 如果Message为空,则我只能假设HRE
try
{
COM.SomeMethod()
}
catch (COMException exn)
{
string ACppErrorMessage = exn.message;
outputError(ACppErrorMessage);
}
根据说明,IErrorInfo
的Description
字段映射到异常对象的Message
,如果HRESULT
包含该信息,否则它只填充默认值
如果
Message
为空,则我只能假设HRESULT
消息中没有返回任何信息,该消息包含类似:Error的字符串。(Exeption HRESULT:0x80020009(DISP_E_EXCEPTION))SomeMethod
do做什么?返回一个接口。做一些数学运算(解析公式等等)。你能转换它吗?类似于(COM作为ISupportErrorInfo)。说明
不要吞下异常中的无用内容,请始终使用exn.toString()
关闭。这是C++方面的问题,使用iSupFieldFieldFiel.@ DimDoad Cube,可能最好地解释它是什么,因为它可能会帮助其他人。@杰姆斯,不是所有的COM对象在CPP实现它,它只在根一,而不是在其他。(相当愚蠢)