アプリ版:「スタンプのみでお礼する」機能のリリースについて

C#からWin32APIのようなアンマネージドDLLを呼び出す場合
引数や戻り値にはマーシャリングが必要になりますが
C++ではアンマネージドDLLが理解できるような実装に従う限り
マーシャリングを行わずに従来通りの方法でアンマネージドDLLを呼び出せると聞きました。
この場合、

1.C#→C++→アンマネージドDLL
2.C#→アンマネージドDLL (※マーシャリングを利用)

1と2ではどちらのほうがパフォーマンス的に有利といえるのでしょうか。
C#からアンマネージドDLLを呼び出すのにC++を間にかませるかどうか
判断に悩んでおります。
よろしくお願いいたします。

A 回答 (2件)

×1.C#→C++→アンマネージドDLL


○1.C#->C++/CLI->アンマネージドDLL

なのでは。

C++/CLIのクラスライブラリ内でWIN32APIを呼び出し、当該のクラスライブラリをC#から利用するということでしょう。

どちらにしろ、2.に軍配が上がるでしょう。
ただし、その速度差が体感できるものかどうかは不明です。
    • good
    • 0

パフォーマンス云々の前に、C#→C++の呼び出しの時点でマーシャリングが必要では?


いずれにせよ、マネージからアンマネージはどこかでマーシャリングが必要になるかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!