.NET大ブーム4
■ このスレッドは過去ログ倉庫に格納されています
0700デフォルトの名無しさん
NGNG外部のDLLがエクスポートしている関数を呼び出す方法をPInvoke(PlatformInvoke)といい、
COMコンポーネントとして動作するDLLまたはEXEのメソッドを呼ぶ方法をInterOpといいます。
Managed C++を用いる方法には特に名前はないと思います。
3者が3者ともネイティブコードを実行できますが、
一番目と二番目については言語の制約はありません。
三番目のMC++については名前のとおりMC++限定の方法です。
全ての選択肢について、ネイティブコードの実行中は.NETによる性能低下はありません。
爆速ライブラリがあるなら、そのライブラリ関数の実行速度は非.NETと同様です。
ただし、全ての選択肢について、呼び出しのオーバーヘッドが掛かります。
ゆえに関数呼び出しのオーバーヘッドを無視できないような場合は「爆速」の意味は薄れます。
ついでに負荷の程度を測った資料は知りませんが、常識的に考えて3,1,2の順番で低負荷でしょう。
個人的な感想からいえば、一番簡単なのはまちがいなくMC++による方法です。
MC++でネイティブのクラスなんかと協調とったりするのは面倒ですが、
ライブラリ関数のラップ程度であれば死ぬほど簡単です。
「かなり面倒そう」なのはおそらく知らないからでしょう。
未知をものを面倒だからと放るようならそもそも.NET自体をあきらめたほうがいいと思います。
以上、参考になれば。
■ このスレッドは過去ログ倉庫に格納されています