Мой c # действительно плох, и я получу книгу или кое-что, чтобы улучшить это позже. Прямо сейчас у меня есть графический интерфейс в c # wpf и библиотека dll в нативном c ++. Все учебники, которые я вижу в интернете для p / invoke, не содержат классов.
Вот как мой код выглядит в C ++:
//Dostuff.h
class foo {
__declspec(dllexport) void dostuff();
}
Как бы я пошел о вызове DLL из C #? Заранее спасибо.
Библиотека C ++ без оболочек часто бесполезна вне компилятора C ++, который ее построил. C # не сделает использование такой библиотеки легким для вас … и даже если вам удастся это сделать, все может сломаться разными интересными способами.
У вас есть два относительно безопасных варианта:
extern "C"
функции оболочки в вашей библиотеке. Вы берете указатель на объект, который хотите использовать, и вызываете функцию для этого объекта. Если вы пойдете по этому пути, он будет как можно ближе к универсально совместимым; любой язык, который может вызывать функции C, сможет использовать библиотеку.Других решений пока нет …