3

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

4

2 に答える 2

3

アンマネージド C++ からマネージド コードを呼び出すには、ClrCreateManagedInstanceを使用するか、マネージド アセンブリ内の型を COM 可視としてエクスポートし、COM を使用します。マネージド コードからアンマネージド コードを呼び出すには、COM または P/Invoke を使用します。

于 2009-06-25T22:17:13.573 に答える
1

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

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

于 2009-06-25T22:43:10.760 に答える