C++ のネイティブ クラスと C++/CLI のマネージド クラスがあります。C++/CLI は C++ のラッパーです。どちらのクラスも同じ名前ですが、異なる名前空間に存在します。まだ把握していない何らかの理由で、マネージ クラスへのポインターを宣言しようとするとコンパイラ エラーが発生しますが、実際には、私のコードは完全修飾名を使用してネイティブ クラスへのポインターを宣言しようとしています。何を与える?
"Native\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' でこの間接参照を使用することはできません