我有一个本机C++ DLL中的引擎,我需要在C#项目中使用它。从C#中的本地C++继承,并将继承类向后传递给C++
我完全是这样做的新手,但我一直在Google上搜索几个小时,现在我知道或多或少的如何实现它。我知道我必须编写一个C#或C++/CLI包装类。
但我还没有找到如何包装dll C++类的某些方面。 发动机具有类CEntity蒙山这一重要环节:
class CEntity
{
void SendMsg(CEntity *receiver);
virtual void ReceiveMsg(MSG msg);
}
那工作原理如下: 从CEntity一个继承类覆盖了ReceiveMsg函数执行它所whants,并继承对象comunicate发送消息。
我需要的是在C#中使用此功能:从CEntity“传承”,在这样的C++代码可以调用它覆盖ReceiveMsg,并能发送消息给其他C#“传承” CEntity OBJETS扔SendMsg C++实现。 换句话说,我需要C++非托管代码调用C#托管代码。 C++代码调用ReceiveMessage(),我需要“覆盖”它或将该调用重定向到C#代码。
是否这样做的方式没有改变DLL?我无法直接访问C++代码,但如果需要,我可以要求修改dll。如果不是,最小的dll修改是什么?
非常感谢
您必须创建一个c#类并使用其中的C++ dll实例的函数... – mtsiakiris 2013-05-14 10:44:20
@mtsiakiris问题是我需要C++非托管代码调用C#托管代码。 C++代码调用ReceiveMessage(),我需要“覆盖”它或将该调用重定向到C#代码。 – Aragorn 2013-05-14 12:39:17