Класс недоступен в этом контексте, потому что это друг

Я пытаюсь создать экземпляр устаревшего класса C ++ в VB.NET. Я следовал инструкциям на следующей веб-странице: http://windowsdevcenter.com/pub/a/dotnet/2004/03/29/mcpp_part3.html?page=2

1) Создан проект Visual C ++ с одним файлом (MFoo.cpp) и следующим кодом:

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) Создана ссылка на DLL (созданную в части 2) в приложении VB.NET

Теперь я получаю сообщение об ошибке при попытке создать экземпляр объекта C ++, т. Е. Dim foo As New MFoo. Ошибка: MFoo недоступен в этом контексте, потому что это Friend.

0

Решение

Вам нужно объявить класс MFoo как открытый, заменить строку __gc class MFoo с public __gc class MFoo

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]