在C#和非托管C ++之间传递自定义对象

时间:2009-01-25 17:27:49

标签: c# c++ .net-2.0 pinvoke unmanaged

我有一个遗留DLL,其中包含我需要从C#代码调用的几种方法。其中一个方法接受指向另一个C ++类的指针,该类存在于其他C ++程序中,而不是DLL中。

我很确定我需要使用pinvoke来回来编组对象,但是我没有在编组自定义对象上找到任何东西。

实现这一目标的最佳方式是什么?

3 个答案:

答案 0 :(得分:1)

你确定它是一个类而不是结构吗?毕竟,不同的编译器可以选择在内存中以不同的方式放置类,这会破坏目标DLL。

您是否考虑过使用托管C ++包装器?

答案 1 :(得分:1)

我会看看C ++ / CLI,虽然根据C ++代码的形状,COM互操作可能会更容易。

答案 2 :(得分:0)

如果只有几种方法使用swig