1

Borland C++ コードを C# に移行する必要があるプロジェクトを実行する必要があります。コードをスムーズに移行するために必要な重要な手順は何ですか? ヒントやコツを教えてください。

4

3 に答える 3

3

それは実際には完全な書き直しを意味します。私があなたなら、C# の代わりに C++/CLI を試します。このようにして、実際に徐々にコードを書き直し、マネージ コードに変換することができます。

C# または C++/CLI に移行する場合の考慮事項:

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

移行するプログラムの種類と理由がわからないため、これ以上詳細なアドバイスはできません。

于 2009-06-17T06:11:34.000 に答える
1

ただし、実際にはコードの移行ではありませんね。あなたがやっていることは、基本的に、言語 a (この場合は C++) に存在するシステムを言語 b (C#) で書き直すことです。この 2 つの言語には、簡単な機械的翻訳を容易にするほどの共通点はありません (C# <-> Java は機械的に翻訳するのがはるかに簡単です)。C++ コードの最新性によっては、一部のイディオムを翻訳できない場合があります。直接。

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

于 2009-06-17T06:07:27.030 に答える
1

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

ただし、単純にビッグバン マイグレーションを行う必要がある場合は、C++/CLI に移植してマネージ アセンブリをビルドし、disassmble-IL-to-C# ツールのいずれかを使用してプロセスを自動化することを検討できます。私はそうすることに強く反対しますが、それはあなたの時間とプロジェクトであって、私のものではありません。

于 2009-06-17T06:13:55.367 に答える