我有一个用C#编写的DLL,这个DLL包含一些像Creator一样的文章。
我需要加载此DLL并在C ++中使用Creator类unmanaged,
那么是否有某种方法可以创建该实例,或者我必须只加载公开的函数吗?
我需要这样的东西:
CreatorInstance->Init();
这是可能的吗?
答案 0 :(得分:4)
您可以在此处找到您需要的大部分内容:http://msdn.microsoft.com/en-us/library/x0w2664k%28VS.80%29.aspx
首先,您需要了解用于C ++编译的/ clr开关。然后,您需要了解Microsoft添加的C ++扩展以允许混合程序集。 (托管类的C ++“指针”将使用p ^而不是p *,依此类推。)
答案 1 :(得分:2)
John Fisher使用C ++ / CLI的方法是迄今为止最简单的处理方法,但它不是唯一的方法。
其他三个选项是:
1)使用COM interop通过COM
包装.NET类2)您可以在本机非托管应用程序中托管CLR,然后调用它。有关详细信息,请参阅this article。
3)您可以托管Mono运行时,并使用它来调用托管代码。有关详细信息,请see this page。
选项2和3非常相似,但IMO,3比2更容易。
答案 2 :(得分:1)
答案 3 :(得分:0)
首先,有可能并且您没有“使用”CLI或/ clr开关。使用良好的旧COM架构,您可以非常轻松地完成http://msdn.microsoft.com/en-us/library/zsfww439.aspx。理解COM的工作方式可能是最大的挑战,但是一旦你知道它就会很有用。