C ++プロジェクトからC#DLLのクラスのメンバーにアクセスする際の問題

c# c++ com dll visual-studio
C ++プロジェクトからC#DLLのクラスのメンバーにアクセスする際の問題

MSサポートで言及としてC#DLLをC ++プロジェクトに追加しましたが、クラス内の変数とメソッドにアクセスできませんでした。 また、クラスではなく構造体であると言っています。それが重要であるかどうかはわかりませんが、同様に言及する必要があると考えました。 書くたびに
. または→または::オブジェクトの後、何も表示されません。 しかし、それは
クラスの名前は静的ではありませんがのみです。

  2  0


ベストアンサー

互換性を高めるために、DLL(C#またはC ++)からクラスをエクスポートしません。 代わりに、クラスの関数を公開しますが、各関数の最初のパラメーターはクラス自体へのポインターです。 また、a:void * CreateMyClassInstance()およびa:DestroyMyClassInstance(void * pInstance)を公開する必要があります。

0


Visual Studio 2005以降では、マネージドコードとアンマネージドコードを一緒に使用できるMicrosoftのECMA認定C 方言であるC / CLIを使用できます。 VS2005には「Managed Extensions for C 」があり、ほぼ同じことを実現できますが、C でマネージコードを記述するために恐ろしく見える構文を使用する必要があります(多くの二重アンダースコアを使用)。

C ++ / CLIを使用すると、プロジェクトでマネージコードとアンマネージコードを混在させ、C#型を直接使用できます。 私見、それはCOMを使用するよりもずっと簡単です。

0


以下のリンクに投稿された記事を読む

役に立つと思います。

0


タイトルとURLをコピーしました