(初步说明:我还没有完全掌握整个“互操作”的东西......)
在 .NET 中使用 COM 库时,所有HRESULT
方法都包装在返回码不成功时抛出的东西中。
//ATL magic exluded
class C {
HRESULT foo(){ return E_FAIL; }
};
// usage code:
if( SUCCEEDED( c.foo() ) ) {
// success code
} else {
// failure code
}
此代码的 .NET 对应内容如下:
try {
c.foo();
// success code
} catch ( Exception e ) {
// failure code
}
有没有办法直接在 .NET 中访问 COM 返回代码,从而不需要异常处理?