2008-11-18 75 views
1

我一直在开发Visual Studio 2005中的DLL。目前它编译并做它应该做的。Borland C++:std的歧义(错误E2015)

但是,我想使用Borland C++ 2006进行编译,因为我听说这样做更好,代码更快。当我尝试这样做,我得到错误信息像这样的:之间STRCMP(为const char *,为const char *)和 的std :: STRCMP(为const char *,为const char

E2015歧义*)

我已经将strcmp的每个实例都更改为std :: strcmp来解决歧义问题,它的工作原理,但我不知道是否有更聪明的方法来做到这一点。

谢谢:-)

+0

我只是好奇你在哪里听说Borland更好?这是对两者的实际评估吗?或者只是口口相传。我希望MS和Borland在这方面相当相似,但是... – grieve 2008-11-18 22:46:22

回答

6

你可能有

#include <cstring> 
在你的代码

#include <string.h> 

using namespace std; 

地方。 cstring声明std :: strcmp,而string.h声明strcmp。这是造成歧义的原因。如果你可以避免做这三件事情,那可能会照顾你的问题。