0

Embarcadero RAD Studioの多くのバージョンで使用されてきたC++ Builderアプリケーションがあります。今、私はそれをXE2でコンパイルしようとしていて、 TGroup というクラスがWinsockのTGroupクラスとあいまいになるという問題に遭遇しました。

驚いたことに、システムの最初のアーキテクトは名前空間を使用していなかったので、この問題は解決できたはずです。まず、すべてのプロジェクト コードを 1 つの名前空間に追加することにしました。しかし、すぐに、約1400 個の .h および .cpp ファイルを調べなければならないことに気付きました。

どうかお願います...名前空間内にプロジェクト全体をすばやくカプセル化するための優れたツールはありますか?

ほとんどのファイルは、レイアウトが少し異なります。インクルードの後に​​定義があるものもあれば、そうでないものもあります。しかし、インクルードの後に​​名前空間宣言を挿入するだけで、最初は問題なく動作し、最後の#endifの直前で閉じることができます。これは包含ガード#defineです。

4

1 に答える 1

0

問題のあるヘッダー ファイルが既に名前空間を使用しているかどうかを確認します。すべての VCL ベースのヘッダー ファイルは名前空間を使用しますが、 using namespaceデフォルトですべてをグローバル名前空間にダンプするためのステートメントも下部にあります。ほとんどのバージョンには#define、その動作を無効にするために設定できる特別な値があります。

于 2012-03-04T17:05:56.127 に答える