wrapper(lib,dll), C#
В программе на C# необходимо получить доступ к функциям которые хранятся в библиотеке .lib, написанной на C++,также есть файлы .h с описанием классов. Выяснилось, что напрямую подключить .lib в C# нельзя, поэтому решил писать оберточный класс на C++, делать DLL, а уже ее подключать в C#.
Вопрос в том, можно ли сделать так, чтобы с классами, которые есть в DLL, можно было бы работать как с полноценными классами: наследовать их, создавать объекты этих классов и. т. д.
Цитата: lexalex
Выяснилось, что напрямую подключить .lib в C# нельзя, поэтому решил писать оберточный класс на C++, делать DLL, а уже ее подключать в C#.
Создавать класс смысла нет.
Цитата: lexalex
Вопрос в том, можно ли сделать так, чтобы с классами, которые есть в DLL, можно было бы работать как с полноценными классами: наследовать их, создавать объекты этих классов и. т. д.
Его всеравно нельзя бдует из .NET использовать (как класс в смысле). Почему? - спросите вы. А как CTS расшифровывается знаете? - в ответ спрошу я.
Потому делайте обычные функции и экспортируйте из DLL.
Цитата:
Его всеравно нельзя бдует из .NET использовать (как класс в смысле). Почему? - спросите вы. А как CTS расшифровывается знаете? - в ответ спрошу я.
Потому делайте обычные функции и экспортируйте из DLL.
Потому делайте обычные функции и экспортируйте из DLL.
Ну... Главное интерфейс к ним сделать по CTS, начинка не важна. Дело времени: managed extentions, враппер в виде ref class и вперёд делегировать вызовы. Такие классы можно будет и наследовать, и полиморфить уже в управляемой среде.
Цитата:
Создавать класс смысла нет.
Наверное, всё же есть:
Цитата:
также есть файлы .h с описанием классов
Цитата: Der Meister
Ну... Главное интерфейс к ним сделать по CTS, начинка не важна. Дело времени: managed extentions, враппер в виде ref class и вперёд делегировать вызовы. Такие классы можно будет и наследовать, и полиморфить уже в управляемой среде.
Спасибо, пример интересный.
Правда говорит что не может загрузить либу LibraryWrapper или одну из ее зависимостей, с ходу понять в чемфигня не получилось.
Цитата: hardcase
Спасибо, пример интересный.
Правда говорит что не может загрузить либу LibraryWrapper или одну из ее зависимостей, с ходу понять в чемфигня не получилось.
Правда говорит что не может загрузить либу LibraryWrapper или одну из ее зависимостей, с ходу понять в чемфигня не получилось.
Build->Rebuild Solution. Порядок компиляции проектов немного не тот :)