【发布时间】:2010-02-01 15:19:39
【问题描述】:
我在从 COM 互操作库加载托管库中的类时遇到了问题。
基本上我有一些非托管 C++ 代码和一个用 C# 编写的 COM 互操作库。最后是第三个库,它被 COM 互操作库引用,其中包含一个类:
public class MyClass{
public MyClass(){}
}
我想做的是从我的非托管 c++ 代码中调用 Interop 库中的一个函数 C++ 代码不需要知道第三个库的存在,它只在互操作中使用。 在里面(){ MyClass _class= new MyClass(); }
由于某种原因,Init 中的这一行失败了“MyClass _class= new MyClass();”,而且我没有收到非常有用的错误消息,我所要做的就是在输出窗口中显示其中的一些: “DotNet_Com_Call.exe 中 0x7c812afb 处的第一次机会异常:Microsoft C++ 异常:[rethrow] 在内存位置 0x00000000..”
和“HRESULT hr = pDotNetCOMPtr->Init();”的 HRESULT我的 C++ 代码中的行是“系统找不到指定的文件”
我是 COM 新手,所以如果有人有任何想法或指示让我朝着正确的方向前进,我将不胜感激,
谢谢
【问题讨论】:
-
我会看看 Init 实际在做什么 - 您看到的错误可能是从 Init 返回的“代表”调用失败的原因。
标签: com