Я пишу оболочку .NET для неуправляемой DLL.Исходная DLL - это C ++ с оболочкой C, которая в основном просто копирует API в форме C, так что привязки к языку не так уж и сложны.Я уже написал для него привязку Python, так что я знаю, что я пытаюсь сделать, это должно сработать.
В DLL есть несколько обратных вызовов, экспортированных как глобальные члены, а именно:
__declspec(dllexport) extern int (*some_callback)(int32_t*, uint32_t);
Мне нужно прикрепить управляемую функцию к этому указателю, но я не могу понять, как добраться до нефункциональных ресурсов в неуправляемой библиотеке.Если только я не слепой, DllImport импортирует только функции.
Есть ли способ сделать это на C #, или мне нужно написать небольшую библиотеку DLL в C, которая предоставляет функции регистрации?Я ненавижу такой подход, потому что он просто чувствует себя не элегантно, но если мне нужно, я должен.