【发布时间】:2011-03-28 09:18:57
【问题描述】:
我尝试编译一个 C++/CLI 文件,该文件包括一个头文件(本机、第三方),其中定义了一个类“Foo”。此外,我通过#using“Bar.dll”使用C# dll,其中定义了命名空间“Foo”。编译器给出错误 C2872 “Foo is ambiguous symbol”。
我不知道原生类“Foo”是在哪个命名空间中定义的,因为头文件中的类定义没有嵌套在某个命名空间中。所以我假设“Foo”类可能不在命名空间中(这在 C++ 中是可能的,不是吗?)。否则,我将指定类“Foo”及其命名空间,以使其特定于编译器。
我可以重命名“Bar.dll”中使用的命名空间“Foo”,但我正在寻找一种不同的解决方案来保留命名空间。实际上一个类和一个命名空间是不同的元素——但我猜不是c++/cli编译器?
提前谢谢 米贝克
【问题讨论】: