Я действительно смущен множеством дезинформации о нативном / управляемом взаимодействии.
У меня есть обычный C ++ exe, который НЕ построен с использованием CLR (это не Managed C ++ или C ++ / CLI и никогда не будет). Этот C ++ exe "отвечает", для него нет управляемой оболочки.
Я хотел бы получить доступ к некоторому коду в сборке C # из моего C ++ exe. Я могу получить доступ к сборке C # из моего кода C ++, используя COM. Однако, когда мой код C # обнаруживает событие, я бы хотел, чтобы он вызывал мой код C ++. Указатель на функцию C ++ для обратного вызова будет предоставлен во время выполнения. Обратите внимание, что указатель на функцию C ++ относится к функции, найденной в среде выполнения exe. Он может использовать статические члены оттуда. Я не хочу, чтобы управляемый код пытался загрузить некоторую DLL-библиотеку для вызова функции (нет DLL).
Как передать этот указатель функции C ++ на мой код C # через COM / .NET, и чтобы мой код C # успешно вызывал его?
Спасибо!