将烧结的C#dll导入C ++项目?

时间:2014-01-23 09:40:13

标签: c# c++ .net com-interop gac

我正在尝试将.net dll导入C ++项目。 c ++代码遵循以下代码:

#include "stdafx.h"
#import "RemoteAgentLibs.tlb" named_guids raw_interfaces_only
int main() {
    HRESULT init = CoInitialize( NULL );
    if (init != S_OK) return 1;

    ImportedNamespace::_ClassNamePtr myclass;
    myclass = new ImportedNamespace::_ClassNamePtr("ImportedNamespace.ClassName");
    myclass->MyMeyhod();
}

一切正常,直到我在.NET项目的属性中检查“签署程序集”。 在.NET项目中,我收到警告:

  

警告3“dll路径”不包含可以为COM Interop取消注册的任何类型。

     

警告3“dll的路径”不包含任何可以为COM Interop注册的类型。

在C ++项目中我收到错误:

  

错误C2039:'MyMethod':不是'ImportedNamespace :: _ ClassNamePtr'的成员

有人可以告诉我为什么导入强名称签名的dll有问题吗? 或者有没有其他方法将我的DLL导入c ++项目并将dll添加到GAC

1 个答案:

答案 0 :(得分:0)

你看了SWIG吗?我认为这是一个很好的解决方案,你只需要为你的需要写一个包装器......