主に C# (サービス、マルチスレッドなど) で書かれた大規模なプロジェクトがあります。ただし、コアの数値計算アルゴリズムは、高速になるようにアンマネージ C++ で記述されています (OpenMP など)。
残念ながら、現時点では、これら 2 つの世界の間でデータを交換するために多くの努力をしなければなりません。つまり、C++ クラスごとに C++/CLI でラッピング クラスを作成する必要があります。(事実上) C# の「世界」で必要な設定 (プロパティ) については、C++ の世界 (ヘッダー ファイル) にコピーがあり、ラッパー クラスで明示的な変換が行われます。このアーキテクチャは非常に非効率的で、エラーが発生しやすいようです。
主な質問: アンマネージ C++ で何らかの方法で自動的に C# クラスをプロパティと共有する方法はありますか? (私たちは読み書きしなければなりません!)
二次的な質問: 上記のような場合にアーキテクチャを改善する方法について何かアドバイスをいただけますか。私たちの考慮事項の 1 つは、完全に C++ に切り替えることでしたが、適切なライブラリを見つけて、現在 .NET で行っているすべての (システム) 処理に対してクリーンなコードを記述しなければならないのは気分が悪いものです。
よろしくお願いします、ヤコブ