2011-11-30 87 views
0

我有一個用C++編寫的程序,帶有一個調用一堆其他C++類/函數的主函數。我是新來的C++(是一個Python程序員),所以我想知道 - 我需要遵循什麼步驟才能夠導出爲可從C#程序導入的DLL?有什麼建議麼?將C++代碼導出爲DLL並使用C#導入?

+0

這是關於一個C接口,與源語言或目標語言無關。 – Puppy

+0

你還沒有寫在「C/C++」中。該語言甚至不存在。 – 2011-11-30 21:34:17

+0

對不起 - 我添加了標籤,因爲我的C++代碼包含一些類,我也有興趣知道如何處理這些類,並將它編譯成C#程序後導入。 – Legend

回答

5

如果您希望您的C++類在C#應用程序中可用,您將需要在C++程序中使用COM或定位CLR(即使用C++/CLI)。

如果您只是在C++ DLL中有一些函數需要從C#調用POD類型參數,則將每個函數聲明爲extern "C"以避免名稱變形並使用DLLImport屬性導入該函數。 PInvoke.net在這裏是一個很好的資源。

1

如果你只輸出普通功能,不是班級,你可以p/invoke他們。如果ypu確實需要這些類,那麼必須將您的項目編寫爲C++/CLI,並像您其他.NET程序集一樣在您的c#項目中引用它。