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