Windows でアンマネージド C++ コードからマネージド .NET コードを呼び出すにはどうすればよいですか、またその逆の場合はどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1046499

質問

VC 6.0 を使用して開発された純粋な C++ アプリケーションがあります。このアプリケーションでは C# で開発されたライブラリを利用したいと考えています。ネイティブ実行可能ファイルから C# ライブラリのメソッドを呼び出すにはどうすればよいですか?アンマネージド C++ ネイティブ アプリケーションをマネージド コードに変換したくありません。同様に、逆を行うにはどうすればよいでしょうか?PInvoke が唯一の選択肢ですか?同じための参考文献やポインタをいただければ幸いです。

役に立ちましたか?

解決

を使用し、管理対象外のC ++からマネージコードに呼び出すために ClrCreateManagedInstanceする 、または可視COMとしてあなたのマネージアセンブリであなたのタイプをエクスポートし、COMを使用しています。管理からアンマネージコードを呼び出すために、COMまたはP /呼び出しを使用します。

他のヒント

これに対する Microsoft の主な方針は、COM 相互運用性の使用です。ただし、「Reverse P/Invoke」とも呼ばれる別のオプションがあり、興味深いブログ投稿があります。 ここ そしてさらにいくつか ここ

また、Delphi.NET (現在は廃止されています) をお持ちの場合、この言語を使用すると、他の DLL 関数と同様に静的メソッドをエクスポートでき、通常のネイティブ DLL と同じように Delphi.NET アセンブリを呼び出すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top