0

我正在尝试在 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 在此上下文中不可用,因为它是 Friend。

4

1 回答 1

3

您需要将 MFoo 类声明为公共,将行替换__gc class MFoopublic __gc class MFoo

于 2013-03-02T15:59:05.640 回答