5

C++ コードを手動で C# に変換するプロジェクトに取り組んでいます。C# の実用的な知識はありますが、C++ を使用したことはありません。

私が知る必要があるのは、C# にはそのようなものがないため、ヘッダー ファイルの処理方法です。buffer.h と buffer.cpp があるとします。両方を変換して、同じ buffer.cs ファイルに含めますか?

C++ ヘッダー ファイルは Ada 仕様ファイルに関連していますか?

4

2 に答える 2

6

インクルード ".h ファイル" とソース ".cpp ファイル" の違いは、慣例の 1 つにすぎません。慣例では、宣言 (関数、クラスなど) は、#include実装 (定義) で d される .h ファイル、または .cpp ファイルにあります。ほとんどの場合、Xh と X.cpp を 1 つの X.cs ファイルに折りたたんで問題ありません。

とはいえ、各ファイルで何が起こっているのかを調べる必要があります。ここでは、C++ の基本的な理解が役に立ちます。翻訳に取り掛かる前に、習得しておくことを強くお勧めします。

于 2012-05-04T13:53:10.967 に答える
1

C++ ヘッダー ファイルには、メンバー データと "インターフェイス" (C# インターフェイス タイプと混同しないでください) と "その他のもの" を定義するクラス定義という 2 つの主要な種類が含まれていると考えると役立つ場合があります。クラス定義部分には、メソッド プロトタイプとクラス メンバー変数が含まれます。

プロトタイプに関する良いニュースは、C# では必要ないということです。クラスのクライアントは、名前空間のアセンブリを介して実装自体からプロトタイプ情報を受け取ります。データ メンバーは、通常、C# プロパティを通じて公開されるプライベート メンバーとして、C# クラスの実装内に含まれます。

上記の「その他のもの」には #defines を含めることができます。これは通常、C# で const 定義に変換する必要があります。列挙などの他のものには、もちろんクラスの .cs ファイルに移動する C# に相当するものがあります。

于 2012-05-04T14:03:52.440 に答える