【发布时间】:2011-12-29 15:58:48
【问题描述】:
我收到了一个包含多个类的非托管 C++ DLL。
我需要能够在 C# 中使用其中一些类。根据我目前的研究,听起来我需要创建一个 C++/CLI 包装 DLL 来处理托管和非托管类型之间的转换。我见过一些示例,其中基本上有人会为每个类创建一个 C++/CLI 版本,并且它将包含一个非托管 C++ 类型的实例。实现我在这里尝试做的最好方法是什么?非托管 DLL 中可能提供了 10-15 个类。现在我只需要使用其中的几个,但将来可能需要使用更多。谢谢!
【问题讨论】:
-
如果 DllMain 就是这样,你也可以把它扔掉,因为它什么都不做。除此之外,亚历克斯是对的。另一种选择可能是 swig (swig.org),但是学习它的工作原理和修复所有警告所花费的时间可能会比编写 10 个包装器的时间更长,并且生成的代码会很丑陋并且可能难以阅读.
标签: c# c++ unmanaged command-line-interface managed