我正在尝试在VB.NET中创建遗留c ++类的实例。我已按照以下网页上的说明操作:http://windowsdevcenter.com/pub/a/dotnet/2004/03/29/mcpp_part3.html?page=2
1)使用一个文件(MFoo.cpp)和以下代码创建了一个Visual C ++项目:
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 ++对象的实例,即Dim foo As New MFoo时,我现在收到错误。错误是:MFoo在此上下文中不可用,因为它是朋友。
答案 0 :(得分:3)
您需要将类MFoo声明为公开,将行__gc class MFoo
替换为public __gc class MFoo