2013-12-09 81 views
0

我正在開發一個項目。在那個C++代碼中引用了一個用C#編寫的類庫。我想將C++類的對象傳遞給C#類庫。 所以這是可能的,如果是,請讓我知道如何?否則我將不得不將大約100個參數傳遞給C#類庫。如何將C++對象傳遞給C#類庫

問候, 維韋克

+1

這可能會幫助您http://stackoverflow.com/a/17189858/1814023 – 2013-12-09 06:21:50

回答

0

你建議立即進行刪除使用marshling。

封送處理是在託管代碼和非託管代碼之間建立橋樑的過程;它是從託管環境向非託管環境傳遞消息並將其反向的本壘打。它是由CLR提供的核心服務之一(公共語言運行庫。)

命名空間System.Runtime.InteropServices.Marshal

這裏讀好博客關於marshling

0

如果你有這個選項,你可以添加CPP文件到您的項目將被啓用CLR(託管C++)編譯。從託管的C++中,您可以調用C#類。你可以找到和這裏的例子:

Managed C++ to form a bridge between c# and C++

另一種選擇是創建一個託管C++ DLL作爲++和C之間的橋樑,.NET,如果你不希望啓用CLR在調用本地應用程序。我用這個技巧,它工作正常,但請注意,一旦你加載該橋dll庫,CLR被加載到內存中,並且你的進程被CLR「感染」。無論如何你都會有這種效果。

相關問題