Каково концептуально типовое решение для такой связки?
Импорт АПИ-функций мне не нравится. Для решения какой-нибудь задачи типа внедрения dll в адресное пространство чужого процесса или работа с хуками клавы\мыши куда приятнее пользоваться родным кодом, чем импортировать кучу функций. Допустим, для последней задачи можно использовать Managed DX, но не всегда все так просто.
Самое простое — сделать COM-объект Stuff, реализовать в нем все, что надо, и пользоваться через Interop (дает комовский реюз, помимо прочего). Еще можно написать managed компоненту на MC++.
А нет ли способа смешивать в одном csproj'е код шарпа и код MC++, чтобы __gc-классы предоставляли интерфейс для вызовов из шарпа с unmanaged-имплементацией (WinAPI)? Может, решение очевидно, но я не дотумкал?