0

私は最近、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) にアクセスしたい。それは可能ですか

4

1 に答える 1