0

VB.NET で従来の C++ クラスのインスタンスを作成しようとしています。次の Web ページの指示に従いました: http://windowsdevcenter.com/pub/a/dotnet/2004/03/29/mcpp_part3.html?page=2

1) 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) DLL を生成する Visual C++ でプロジェクトをビルド 3) VB.NET アプリケーションで DLL (パート 2 で作成) への参照を作成

C++ オブジェクトのインスタンス、つまり Dim foo As New MFoo を作成しようとすると、エラーが発生するようになりました。エラー: MFoo は Friend であるため、このコンテキストでは使用できません。

4

1 に答える 1

3

クラスMFooをパブリックとして宣言する必要があり、行__gc class MFooを次のように置き換えますpublic __gc class MFoo

于 2013-03-02T15:59:05.640 に答える