2016-07-26 7 views
0

私のC++クラスをc#windowsフォームアプリケーションで使用したいと思います。C++クラスへのC++ DLLへのC#Windowsフォームクラスへの変換

ヘッダーファイル(.hと.cpp)でC++クラスを作成した後、dllになるはずのwin32プロジェクトを作成しました。

私はそれを私のC#windowsフォームプロジェクトで使っていますが、どこに置くべきか、何を入れるべきか分かりません。

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に属していますあなたはそれを分けることはできません。 STAThreadの上にDllImportを書き込みます。 –

+0

私はどのようにDllImportをSTAThreadの上に書いた後に関数を使うのですか? –

+0

以下のDllImportでは、関数名を記述する必要があります。例:https://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx –

答えて

0

あなたは(RIF https://msdn.microsoft.com/en-us/library/ms235281.aspx。)C++/CLIでラッパーを記述する必要があります。 あなたのC#への追加後、C++/CLIを使用してDLLとしてコンパイルし、C++でラッパーを書きますあなたは何のエラーもありませんプロジェクト:

StackLibrary DLL(ネイティブC++)< - >ラッパーDLL(C++/CLI)< - > C#プロジェクト

+0

私はラッパーとstacklibrary dllを置き換える必要がありますか? –

+0

これらを別々の状態に保つことができます。この方法では、StackLibrary DLLをc#(ラッパー経由)と他の言語(DLLをインポートできるC++、VB、PHP、...などすべての言語)で使用できます。 StackLibraryプロジェクトをラッパーを追加して変換し、C++/CLIオプションを使用してコンパイルすることができます。この場合(stacklibrary dllの置き換え)、このDLLを.Net/Monoプロジェクトにのみ追加できます。 – Fil

+0

助けていただきありがとうございます、私はそれに取り組んでみましょう –