120 万行のレガシー Visual C++ 6 コード ベースがあり、それを最新化するさまざまな方法を検討しています。1 つのアイデアは、このコードを変更して CIL に C++/CLI コードとしてコンパイルし、Reflector などのツールを使用して逆コンパイルして C# に戻し、そのコード ベースを維持することです。
誰かが前にこのようなことをしたことがありますか? それは実現可能に聞こえますか?
CLIやReflectorを直接体験することはありませんが、思いついたものがかなり醜いC#のように見えるかもしれないと思います。
少数の代表的なファイルを変換して、何が起こるかを確認してみませんか?
私の勘では、コードをVS10に移行して、C++のままにしておく方がよいでしょう。
単純に を渡す/clr
と、ライブラリ関数が使用されているすべての場所で C++ 相互運用機能を使用することになります。Reflector は、これをどうするかわかりません。C++ 標準ライブラリの使用を .NET ライブラリに変換するための近道はありません。1 対 1 の相関関係はなく、アーキテクチャ設計もかなり異なる傾向があります。
純粋な計算を実行する関数の場合、醜いが機能するものになる可能性があります。