2008-11-18 35 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。這是造成歧義的原因。如果你可以避免做這三件事情,那可能會照顧你的問題。