0

我们有一个C++ Builder应用程序,它已经经历了Embarcadero RAD Studio的多个版本。现在我试图让它在XE2中编译并遇到一个问题,一个名为TGroup的类与WinsockTGroup类产生了歧义。

令我愤怒的是,我发现系统的初始架构师没有使用任何名称空间,这本来可以解决这个问题。我决定将所有项目代码添加到一个命名空间开始。但很快我就意识到我必须浏览大约1400 个 .h 和 .cpp 文件

拜托,看在上帝的份上……有没有一个很好的工具可以快速地将整个项目封装在一个命名空间中?

大多数文件的布局略有不同。有些在包含之后有定义,有些则没有,等等。但是在包含之后插入命名空间声明应该可以开始,然后在最后一个#endif之前关闭它,这是包含保护#define

4

1 回答 1

0

检查有问题的头文件是否已经使用命名空间。所有基于 VCL 的头文件都使用命名空间,但它们 using namespace在底部也有声明,默认情况下将所有内容转储到全局命名空间中。大多数版本都有特殊#define值,您可以设置以禁用该行为。

于 2012-03-04T17:05:56.127 回答