Я пишу приложение, используя C # и WinForms.У меня есть элемент управления ActiveX, предоставленный третьей стороной.Я перетаскиваю элемент управления ActiveX в форму и получаю экземпляр класса (называемого «Widget»), который реализует этот элемент управления.
Теперь мне нужно передать указатель интерфейса IWidget из C # в унаследованный C ++код.Я планирую поместить код C ++ в dll и вызвать его из C #, используя P / Invoke.Проблема в том, что я не знаю, как предоставить определение IWidget для кода C ++.Первоначальные авторы кода C ++ имели заголовочные файлы (скажем, widget.h), поэтому они могли #include widget.h и объявить указатель IWidget.
У меня нет .h (и могу 'не понимаю)У меня есть только ActiveX.Итак, как я могу объявить указатель IWidget в моей dll?
Пока что моя единственная идея - создать файл IDL из dll ActiveX.Это разумный подход?
Спасибо, Марк