我有一個本機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