【问题标题】:.NET COM Interop with references to other libraries.NET COM 互操作与对其他库的引用
【发布时间】: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


【解决方案1】:

没关系,我想我只是自己想出来的。看起来 Interop DLL 和 interop 引用的第三个 DLL 需要位于同一目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多