2011-04-13 62 views
0

我需要在C#中創建一個VC++包裝器。有沒有辦法自動生成代碼?如何在VC++中爲軟件創建c#包裝?

編輯:讓我澄清一點:我有一個簡單的項目,用C++編寫複雜的數學函數(計算磁偏角)。它只有三個文件,一個頭文件,一個命令行控制器和庫。

我在看SWiG,但我發現它是神祕的:P。我正在看看C++/CLI。

任何提示和隱患要注意什麼?

回答

1

至於最簡單的問題:這取決於你的設置和要求! ;-)如果你有更多的C風格界面,你可以通過使用Interop來解決你的問題。如果涉及「真正的」OO編程和C++,則可能需要查看C++/CLI。這很容易,但也可能會變得很痛苦 - 取決於你的課程。據我所知,沒有自動代碼生成工具。

+2

不是「託管C++」。 「C++/CLI」。 – 2011-04-13 12:52:08

+0

你說得對。自從我使用它以來已經有一段時間了。 – Achim 2011-04-13 13:06:09

1

SWiG支持C#。但是一個C++/CLI包裝器將比SWiG自動生成的更像「類似.NET」。

1

你可以看看這個教程:

http://www.codeguru.com/csharp/csharp/cs_data/article.php/c4217

我認爲這是更好,如果你讓自己的包裝比使用任何工具(如果它確實存在的話)。原因是你可以使用正確的哲學來創建更好的C#包裝,而不是從DLL生成函數調用列表。

而對於陷阱,我唯一可以說的是,既然你要混合管理和非託管類,請確保你的結構/參數匹配(sizeof或types)。

相關問題