2016-07-26 57 views
0

我想在c#窗體表單應用程序中使用我的C++類。將C++類轉化爲C#Windows窗體類的C++類

我在頭文件(.h和.cpp)中做了一個C++類,然後我做了一個win32項目,它應該成爲一個DLL。

然後,我想在我的C#窗體窗體項目中使用它,但我不知道把它放在哪裏或放什麼。

This is the StackLibrary.h and .cpp

This is what i have in the c# windows forms project, i added the interopservices and the dllimport. i dont know what to do next or if its correct. pls help.

+0

[STAThread]歸屬到M ain方法,你不能分開它。寫入DllImport高於STAThread。 – 2016-07-26 13:19:07

+0

如何在寫入STATHread之上的DllImport後使用函數? –

+0

在DllImport下面,您必須編寫函數名稱,請參閱示例:https://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx – 2016-07-26 13:23:55

回答

0

你必須寫在C++/CLI(RIF https://msdn.microsoft.com/en-us/library/ms235281.aspx。)包裝: 編寫C++中的包裝,用C編寫的DLL ++/CLI,然後添加到您的C#項目你不會有任何錯誤:

StackLibrary DLL(本機C++)< - >包裝DLL(C++/CLI)< - > C#項目

+0

我應該用一個包裝器來替換stacklibrary dll嗎? –

+0

你可以將它們分開:這樣你就可以在c#(通過包裝器)和其他語言(例如C++,VB,php,...以及可以導入DLL的所有語言)中使用你的StackLibrary DLL。您可以轉換StackLibrary項目,添加包裝並使用C++/CLI選項進行編譯。在這種情況下(stacklibrary dll替換),您將只能將該DLL添加到.Net/Mono項目中。 – Fil

+0

謝謝你的幫助先生,我會盡力解決這個問題 –