諸事情によりマネージドコードを併用したほうが生産性が高いのだが、ネイティブプロジェクトから呼び出したい、という場合の方法。
- C#マネージドDLLプロジェクトでDLLを作成。
- 「C++CLI DLLプロジェクト」を作成し、1で作成したDLLを用いて処理を書き、エクスポート。これをMixed Assenmblyなどと呼ぶらしい。
- 2で作成したMixedなDLLをネイティブ(アンマネージド)プロジェクトから呼ぶ。
これだけなのだが、言われてみないと割とどうしていいかわからなかったりする。元ネタは以下。簡単なサンプルがダウンロード出来るので、それを見れば一目瞭然かと。
C++CLIプロジェクトでいいだろ、という異論はもちろんあるだろうが、ネイティブプロジェクトの設定を変えること無く呼べる、という点がミソである。