У меня есть C # app.exe и один C # my.dll. Проект my.dll .NET ссылается на собственную C ++ DLL (mynat.dll) (внешний интерфейс C DLL), и вызов из C # в C ++ DLL работает без проблем. (Используя атрибут [DllImport("mynat.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
.)
Теперь мне нужно добавить, чтобы dll C # предоставлял некоторые функции обратного вызова, в которые может вызываться код C ++. В идеале код C ++ mynat.dll должен использовать LoadLibrary ("my.dll") для загрузки DLL C #, а затем использовать GetProcAddress для разрешения функции обратного вызова, которую он может затем вызвать. (Обратите внимание, что в тот момент, когда код C ++ вызывает LoadLibrary, DLL-библиотека my.dll C # уже загружена в процесс - этот вызов будет просто для того, чтобы получить указатель на dll.)
Однако я не знаю, как правильно экспортировать «внешний интерфейс C DLL» из .NET DLL
Что мне нужно сделать, чтобы достичь этого?