我在 C++ 中有一个本机类,在 C++/CLI 中有一个托管类。C++/CLI 是 C++ 的包装器。这两个类具有相同的名称,但存在于不同的命名空间中。出于某种我还没有理解的原因,我收到有关尝试声明指向托管类的指针的编译器错误,但我的代码实际上是在尝试使用完全限定名称声明指向本机类的指针。是什么赋予了?
“本机\Header.h”
namespace Native
{
class MyClass {};
}
“托管/Header.h”
namespace Native { class MyClass; }
// Or
class Native::MyClass;
namespace Managed
{
ref class MyClass
{
Native::MyClass* m_Native; // Error C3699
};
}
错误 C3699:“*”:不能在类型“Managed::MyClass”上使用此间接