2010-11-27 24 views
2

有沒有推薦的方法來包裝一個本地C++庫的c + + cli?C++/cli wrapper問題

+0

你是什麼意思?我認爲這完全取決於你想要完成的事情。所以。你想達到什麼目的? – BastiBen 2010-11-27 13:18:03

回答

6

不確定一個尺寸是否適合所有,但是,它主要是一個機械過程。你的ref class wrapper應該聲明一個私有成員,它是一個指向你的本地C++類的指針。在構造函數中創建實例。您需要一個析構函數和一個終結器來再次刪除該實例。

然後,對於本機C++類中的每個函數,您都要編寫它的託管版本。這幾乎總是一對一的調用,您只需調用相應的本地方法並讓C++ Interop轉換參數即可。有時你必須編寫一些粘合代碼來將託管參數轉換爲本地版本,特別是如果你的本地方法使用8位char *或結構參數。

您會在my answer here的代碼中找到該標準模式。我也應該提到SWIG,一種可以自動化的工具。不知道它有多好,從來沒有用過它。