Использование экспортированного класса из библиотеки DLL C++ в C#
Всем привет,
Я пытаюсь использовать dll c++ в приложении c# winform
Библиотека Dll экспортирует класс (CMyClass), который наследуется от другого базового класса.
Экспорт осуществляется с помощью оболочки которая инкапсулирует CTor DTor и другую функцию таким образом:
extern "C" {
extern __declspec(dllexport) CMyClass* CreateMyClass();
.DTor..
.функция..
}
а CreateMyClass-это что-то вроде этого:
CMyClass* CreateMyClass (){возвращает новый CMyClass();}
Вызов CreateMyClass в c# выполняется путем объявления
[DllImport("MyDllPath.....")]
статический публичный extern IntPtr CreateMyClass ();
а затем вызов IntPtr p = CreateMyClass() .
Вызов завершается неудачей при попытке чтения или записи защищенной памяти"
Можно ли вызвать класс c++, который является производным классом в c#?
Спасибо!!
Что я уже пробовал:
Библиотека dll прекрасно работает в другом приложении на языке C++.
Приложению C# удалось вызвать CreateMyClass, если CMyClass не является производным классом