Использование VCProjectEngine и COM

0

Я пытаюсь использовать COM-систему для VCProjectEngine. Он довольно прост в использовании на С#, но я нахожусь в стене на родном C++.

Я использую систему COM, и до сих пор мне удалось получить указатель на интерфейс VCProjectEngine используя функцию CoCreateInstance.

Но что мне делать с этим интерфейсом? Я хотел бы получить доступ к интерфейсу VCProject, чтобы иметь возможность добавлять файлы в проект. Я попытался перейти с LoadProject или CreateProject но для параметра IDispatch параметр не является VCProject.

Может ли кто-нибудь помочь мне с этим?

  • 0
    Эти методы возвращают указатель IDispatch. Используйте QueryInterface () для получения указателя интерфейса VCProject. Это очень простая задача COM, но учтите, что VB.NET или C # значительно облегчат вам задачу.
  • 0
    На самом деле гарантируется только возврат указателя интерфейса IUnknown, и QueryInteface () является одним из 3 методов в этом интерфейсе. Но есть более эффективные способы, чем использование низкоуровневых вызовов функций интерфейса COM.
Показать ещё 2 комментария
Теги:
com
visual-studio-2012

1 ответ

0

Вызов COM-интерфейсов из C++ можно выполнить несколькими способами:

  1. "низкоуровневые" COM-вызовы с использованием CoCreateInstance и интерфейса IUnkown
  2. ATL (библиотека шаблонов Active-X), которая предоставляет ряд интеллектуальных указателей и служебных функций, облегчающих работу. Используйте в сочетании С#import для создания классов-оболочек для вас.
  3. Для приложений Windows Store вы должны использовать C++/Cx или WRL (Библиотека времени исполнения Windows C++)

В MSDN есть много хороших учебников и примеров кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню