2012-04-24 5 views
0

1.2Mの従来のVisual C++ 6コードベースがあり、それを近代化するさまざまな方法を検討しています。 1つのアイデアは、このコードをC++にコンパイルしてC++/CLIコードとしてコンパイルし、その後Reflectorのようなツールを使用してC#に逆コンパイルし、そのコードベースを今後も維持することです。C++/CLIを使用してC++からC#にコンパイルする前に

これまで誰もこのようなことをしていませんか?実現可能なように聞こえますか?

+1

コンパイルは、機械コードまたは中間形式のいずれかに、通常、情報の*ロット*を失います。生成されたコードは機能しますが、保守はできません。卵を解読することはできません。 –

答えて

3

CLIやリフレクターの直接の経験はありませんが、あなたが思いついたものは、かなり醜いC#のように見えるかもしれないと思います。

なぜ少数の代表ファイルを変換してみてはどうでしょうか?

私の勘は、コードをVS10にしてC++にしておく方がいいでしょう。

+1

C + +/CLIの5年以上の開発者として、それを絶対に避けてください。想像しているリフレクターを使ってC#のコードを手に入れることはできませんが、それはうまくいくとは思いません。 – greggorob64

1

単純に/clrを渡すと、ライブラリ関数が使用されるすべての場所でC++ interopの使用が終了します。リフレクターはこれと何をするべきか分かりません。 C++標準ライブラリを.NETライブラリに変換するためのショートカットはありません.1:1の相関はなく、アーキテクチャ設計もかなり異なる傾向があります。

純粋な計算を実行する関数の場合、醜いが動作するかもしれません。

関連する問題