2009-12-06 39 views
2

我已經將C#DLL添加到C++項目中作爲mentioned at MS support,但是我無法訪問類中的變量和方法。它也說它是一個結構,而不是一個類,我不知道它是否重要,但我認爲我應該提及它。每當我寫作。或 - >或::在對象之後,什麼都不出現。但它只出現在班級的名字上,儘管它們不是靜態的。從C++項目訪問C#DLL中的類的成員的問題

+0

如何顯示問題的最小代碼? – sdg 2009-12-28 02:23:37

+0

目前還不清楚這個問題實際上是關於如何訪問dll中編寫的C#方法,或者說「Intellisense無法識別這些方法」以及「如果它是託管C++/CLI還是非託管C++ ......」 – pascal 2010-07-13 05:08:11

回答

0

從Visual Studio 2005開始,您可以使用Microsoft的ECMA批准的C++方言C++/CLI,該方言允許將託管代碼和非託管代碼結合在一起。在VS2005中,有「C++託管擴展」,你可以用它來達到大致相同的目的,但是你必須用C++編寫託管代碼(帶有大量雙下劃線)來使用可怕的語法。使用C++/CLI,可以在項目中混合使用託管代碼和非託管代碼,並直接使用C#類型。恕我直言,這比使用COM更容易。

0

爲了提高兼容性,我不從我的DLL(C#或C++)中導出類。相反,我公開這個類的函數,但每個函數的第一個參數是一個指向類本身的指針。你可能還需要公開一個:void * CreateMyClassInstance()和a:DestroyMyClassInstance(void * pInstance)。