私は最近、COM 相互運用に取り組んでいます。Nishant Shivakumar による C++/CLI in Action に関する優れた本を読んでください。また、 Srinivasによるこのリンクも参照しました。彼は、C++/CLI を使用してネイティブ C++ で C# ライブラリを使用する方法を美しく説明しています。ページの下部にあるコードをダウンロードしました。それを読んで、気に入りました。それに基づいて。その例で質問があります(そこからダウンロードできます)。C# ライブラリ "Worker.cs" で、Worker クラスに次のようなシグネチャを持つメソッドがある場合::
public void GetStudent(ManagedStudent student,int ){....}
参考:: Worker クラスのそのクラスからメソッドにアクセスするため、オブジェクト パラメーターが必要です。
C++/CLI ラッパー プロジェクトの NativeInterface.h では、例とは異なり、このマネージド オブジェクトをパラメーターとして取得するメソッドをエクスポートしたいと考えていました。
__declspec dllexport void GetStudent(ManagedStudent^ obj)
C++/CLI のオブジェクトに相当するものは何ですか?
その後、ネイティブの Win32 アプリケーション/DLL にオブジェクトを渡してこのメソッドをインポートし、このメソッドにアクセスしたいと考えています。ネイティブ dll/App に「NativeInterface.h」ファイルを含めています。しかし、dll/App のビルド中にエラーが発生します。マネージド ターゲット コードには \clr オプションが必要です。
参考:: 1. 私の WIN32 dll/app は \clr をサポートせずにコンパイルされており、私のラッパーは \clr をサポートしています。ネイティブ app/dll の UnmanagedStudent(Object obj) にアクセスしたい。それは可能ですか