2009-06-17 23 views
1

Borland C++コードをC#、 に移行する必要があるプロジェクトを実行する必要があります。コードのスムーズな移行にはどのような手順が必要ですか? お気軽にお問い合わせください。C#へのBorland C++の移行

答えて

3

実際は完全な書き換えを意味します。私があなただったら、C#の代わりにC++/CLIを試してみたいと思います。こうすることで、コードを書き直して管理コードに変換することができます。あなたがC#やC++/CLIへの移行天気を

物事は、考慮すべき:

  1. はきれいなインターフェイスを持つモジュールでソフトウェアをパーティション(n層アーキテクチャを使用して、MVC、...)。各パーティションがCOMオブジェクトである場合、.NETでCOMオブジェクトを使用してパーツだけを移行することもできます。
  2. あなたは、ポインタを使用場所を決定し、あなたがRAII-オブジェクトを使用するC++
  3. チェックにこのコードを変換して見つけることができますどのように確認しますが依存するライブラリを識別し、あなたは.NET
  4. でそれらを置き換えることができますどのように確認してください.NETで同じ結果を得る方法。

どのような種類のプログラムを移行するのか、どのような理由で私はあなたに詳細なアドバイスをすることはできません。

+0

ありがとうTobias ...その膀胱スキャンの画像処理プロジェクトと、C#、C++/CLIでコード全体を書き直すというクライアントの考え方は、より良い選択肢です –

+0

次に、私はC#でGUIを行い、 C++ \ CLIはできるだけ多くのコードを再利用します。このようにして、動作するアプリケーションを素早く取得できます。その後、他の部分をマネージコードに変換することができます。あなたはBorland-Controlsを使っているので、WindowsではなくGUIを書き直さなければなりません。 –

1

実際にはコードの移行にはなりませんか?あなたがやっていることは、言語a(この場合はC++)で言語b(C#)で存在するシステムを本質的に書き直すことです。 2つの言語は、簡単な機械翻訳を容易にするためにそれほど共通していません(C#< - > Javaは機械的に翻訳するほうがはるかに簡単です)。また、C++コードの現代的な方法によっては、いくつかのイディオム直接。

妥当なサイズのプロジェクトの私のアプローチは、簡単なテキスト処理を可能にする言語で「クロスコンパイラ」を書くことです(私は前回ルビーを使用しました)。このクロスコンパイラは、コードの約80%をターゲット言語でほぼコンパイル可能なものに機械的に変換できる必要があります。これにより、既存のコードを使用して同等の機能をC#で記述する必要があるため、プログラマからの注意が必要なコードの領域を特定することもできます。この翻訳ツールでは、ヘッダーファイルと実装ファイルから必要なコードを集めるコードも記述する必要があることを忘れないでください。 C++コードがどのくらい整理されているかによって、これは簡単な作業ではありません。

1

.NETに移動するだけの場合は、C++/CLIを使用することを検討してください。実際にC#に移行したいのであれば、自動化された移行パスを使用するのではなく、C++/CLIに移行した後、C#で新しい開発を行い、既存のコードをC++からC#に移行する予定です時間の経過とともに行われた変更を検証するための堅牢なテスト環境

しかし、単にbig-bangの移行を行う必要がある場合は、C++/CLIに移植して管理対象アセンブリを作成し、disassmble-IL-to-C#ツールの1つを使用してプロセスを自動化することを検討できます。私はそれに強く反対していますが、それは私のものではなく、あなたの時間とプロジェクトです。

関連する問題