如何制作一个;“不明确的符号”;VS 2008独一无二 我在C++代码中遇到了一些定义语句,但是我不太熟悉如何在VC++中处理: >filetaint.cpp 1>.\filetaint.cpp(272) : error C2872: 'UINT32' : ambiguous symbol 1> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned int WIND::UINT32' 1> or '..\..\include\gen\types_foundation.TLH(80) : LEVEL_BASE::UINT32' 1>.\filetaint.cpp(275) : error C2872: 'UINT32' : ambiguous symbol 1> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned [...]

如何制作一个;“不明确的符号”;VS 2008独一无二 我在C++代码中遇到了一些定义语句,但是我不太熟悉如何在VC++中处理: >filetaint.cpp 1>.\filetaint.cpp(272) : error C2872: 'UINT32' : ambiguous symbol 1> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned int WIND::UINT32' 1> or '..\..\include\gen\types_foundation.TLH(80) : LEVEL_BASE::UINT32' 1>.\filetaint.cpp(275) : error C2872: 'UINT32' : ambiguous symbol 1> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned [...],c++,namespaces,C++,Namespaces,======生成:0成功,1失败,0最新,0跳过========== P>这是因为编译器不知道是否从我的Windows SDK“BaseTHS.H或从Type SealFrase.h中使用定义。我希望它使用后者。C++中有任何构造名称空间来告诉编译器选择什么吗?我不想修补SDK或库本身。 #include "filetaint.h" #include "dift.h" using namespace WIND; types_foundation.TLH包含正确的语句。它已经在VS 2008

======生成:0成功,1失败,0最新,0跳过==========

<> P>这是因为编译器不知道是否从我的Windows SDK“BaseTHS.H或从Type SealFrase.h中使用定义。我希望它使用后者。C++中有任何构造名称空间来告诉编译器选择什么吗?我不想修补SDK或库本身。

#include "filetaint.h"
#include "dift.h"

using namespace WIND;
types_foundation.TLH包含正确的语句。它已经在VS 2008的VC++路径中。我在这里有点困惑…但我想我必须找到一种方法,告诉我的编译器暂时忽略SDK;)

我希望它使用后者

然后用名称空间名称限定您的用法:
LEVEL\u BASE::UINT32

或者,从代码中删除using指令,并限定从库中使用的所有名称。在大多数情况下避免使用指令是一个好主意:它们的麻烦远大于它们的价值

我希望它使用后者

然后用名称空间名称限定您的用法:
LEVEL\u BASE::UINT32


或者,从代码中删除using指令,并限定从库中使用的所有名称。在大多数情况下避免使用指令是一个好主意:它们的麻烦远大于它们的价值。

无论您在哪里使用它,都要用名称空间名称明确限定它。

用名称空间明确限定它名称,无论您在何处使用它。

使用名称空间编写完全限定的名称,而不是依靠编译器神奇地为您选择合适的名称:

LEVEL_BASE::UINT32
我是不是遗漏了什么?

是的

使用名称空间编写完全限定的名称,而不是依靠编译器神奇地为您选择合适的名称:

LEVEL_BASE::UINT32

<>我在这里漏掉了什么东西?

我应该更具体一些…我想避免混合名字空间。猜测我必须重新阅读一些命名空间和C++内部。谢谢你指点我。)我应该更具体一些…我想避免混合名字空间。这样我就必须重新阅读一些命名空间了。和C++内部的。谢谢指点我。