C++ 类在此上下文中不可用,因为它是友元

C++ 类在此上下文中不可用,因为它是友元,c++,vb.net,managed-c++,C++,Vb.net,Managed C++,我试图在VB.NET中创建一个遗留C++类的实例。我已按照以下网页上的说明进行操作: 1)创建了一个带有一个文件(MFo.CPP)的VisualC++项目,下面的代码: class Foo { public: // constructor Foo(void) {} // destructor ~Foo(void) {} // some method void DoSomeFoo(){} }; __gc class MFoo { public: Foo * _foo; pu

我试图在VB.NET中创建一个遗留C++类的实例。我已按照以下网页上的说明进行操作:

1)创建了一个带有一个文件(MFo.CPP)的VisualC++项目,下面的代码:

class Foo 
{ public: 
// constructor 
Foo(void) {} 
// destructor 
~Foo(void) {} 
// some method 
void DoSomeFoo(){} }; 

__gc class MFoo 
{ public: Foo * _foo; 
public: 
    // constructor 
    MFoo() { _foo = new Foo();} 
    // destructor 
    ~MFoo() { delete _foo; } 
    // method 
    void ManagedDoSomeFoo() { _foo->DoSomeFoo(); } };

2)在Visual C++中生成DLL 3) 在VB.NET应用程序中创建对DLL(在第2部分中创建)的引用


<>我现在尝试创建C++对象的实例,即DimeFoo作为新的MFO。错误是:MFoo在此上下文中不可用,因为它是Friend。

您需要将类MFoo声明为public,将行
\u gc class MFoo
替换为
public\u gc class MFoo
您需要将类MFoo声明为public,将行
\u gc class MFoo
替换为
public\u gc class MFoo

C++/CLI!=管理C++@user1937198,注意到。我重新标记了.C++/CLI!=管理C++@user1937198,注意到。我已经重新标记了。就这样。非常感谢,就这样。非常感谢。