Кто-нибудь знает какие-либо недавние примеры создания простого COM-компонента в C ++ с использованием Visual Studio 2008, чтобы я мог научиться распределять различные типы данных между неуправляемым и управляемым кодом и обратно Я нашел несколько учебных пособий, которые предлагают проект C ++ ATL, но на странице настроек проекта больше нет настроек, упомянутых в статье.
Что я хочу сделать, это реализовать C ++ DLL, которая будет использоваться из C #, например:
MyComComponent myComp = new MyComComponent();
myComp.Register(new ClassWithCallbacks()) /* implements IMyCallback */
Компонент COM через определенные промежутки времени будет вызывать различные методы в предоставленном экземпляре IMyCallback для получения информации. Аналогично, код C # может вызывать различные методы напрямую, когда это необходимо.
Этот механизм позволяет мониторить приложение либо (сторона C ++), опрашивая сторону C #, либо стороной C #, сообщающей обратно стороне C ++.