現在、アプリの構造は次のとおりです。
- 私たちの C# GUI
- マネージド C++ ライブラリ
- サードパーティのアンマネージ 32 ビット C++ ライブラリ
必要なのは、アプリケーションを 64 ビットにし、サードパーティ ライブラリを 32 ビットのままにすることです (64 ビット バージョンはありません)。問題は、このライブラリが常に大きな配列 (10 ~ 100 MB) をデコードしているため、マーシャリング時間が問題になることです。
私たちが考えたいくつかのオプション:
- サードパーティ ライブラリを Managed C++ ActiveX にラップし、C# から呼び出す - シンプルですが、マーシャリングのペナルティが大きいことが予想されます
- 両側で Boost.Interprocess を使用 - より複雑に見えますが、おそらくより高速です
実行速度のためにどの方法を選択するかについて何か提案はありますか? 他の方法はありますか?