【发布时间】:2009-01-25 17:27:48
【问题描述】:
我有一个旧版 DLL,其中包含我需要从 C# 代码调用的几个方法。其中一种方法接收指向另一个 C++ 类的指针,该类位于其他 C++ 程序中,而不是 DLL。
我很确定我需要使用 pinvoke 来回编组对象,但我还没有发现任何关于编组自定义对象的内容。
最好的方法是什么?
【问题讨论】:
标签: c# c++ .net-2.0 pinvoke unmanaged
我有一个旧版 DLL,其中包含我需要从 C# 代码调用的几个方法。其中一种方法接收指向另一个 C++ 类的指针,该类位于其他 C++ 程序中,而不是 DLL。
我很确定我需要使用 pinvoke 来回编组对象,但我还没有发现任何关于编组自定义对象的内容。
最好的方法是什么?
【问题讨论】:
标签: c# c++ .net-2.0 pinvoke unmanaged
你确定它是一个类而不是一个结构吗?毕竟,不同的编译器可能会选择在内存中以不同的方式布局类,这会破坏目标 DLL。
您是否考虑过使用托管 C++ 包装器?
【讨论】:
我会关注 C++/CLI,尽管 COM 互操作可能更容易,具体取决于 C++ 代码的形状。
【讨论】:
如果它只是几个方法使用 swig
【讨论】: