Возможно ли, чтобы MinGW g понимал библиотеку типов COM-сервера?

#com #g #mingw

#com #g #mingw

Вопрос:

Поскольку инструменты командной строки x86_64-w64-mingw32-widl в Linux и widl Windows способны создавать библиотеки типов, файлы .tlb, для импорта COM-клиентами, разумно предположить, что может быть выполнимо использовать набор инструментов MinGW для создания COM-клиента, способного получать COM-интерфейсы с помощью интеллектуальных указателейпредлагается файлом .tlb вместо вызова функции CoCreateInstance для получения интерфейсов. Вопрос в том, как?

Visual C имеет свою нестандартную директиву #import для введения типов интеллектуальных указателей (и прочего) в код C . Что является аналогом, когда мы используем MinGW g ?

Кстати, я весь день гуглил и обнаружил, что мне трудно найти полезную информацию о «MinGW COM». Большинство из них используют Visual C . Если вы знаете где-нибудь хороший онлайн-учебник по этой теме, пожалуйста, дайте мне знать. Спасибо.

Комментарии:

1. К сожалению, заголовки MinGW не все обновлены (наравне с Windows SDK), но помимо этого (вы всегда можете переопределить недостающие части), COM-объекты могут использоваться MinGW и связанной с ним цепочкой инструментов. Расширенные инструменты (такие как #import) — это совершенно другое дело.

2. @SimonMourier Разве невозможно использовать библиотеки типов таким простым способом, как #import foo.tlb при использовании MinGW? Какой план B вы бы предложили как эксперт? Придерживайтесь CoCreateInstance? Спасибо.

3. Я не знаю ни одного эквивалента #import . Если вы действительно хотите придерживаться MinGW toolchain (я лично не рекомендую его для разработки Windows, особенно сейчас, когда есть версия для сообщества Visual Studio, и Microsoft гораздо более ориентирована на кросс-платформу, чем раньше), тогда да, вы должны использовать CoCreateInstance и др. Если вам нужны интеллектуальные указатели, вы можете переписать эквивалент _com_ptr_t и другие.

4. @SimonMourier Спасибо. Вы сэкономили мне много времени, и не только по этому вопросу. Мне не нужно самому проходить много экспериментов. Действительно думаете, что вы. Жаль, что у меня нет монет cryto, чтобы я мог купить вам выпить. Жаль, что в настоящее время я беден, но я буду помнить тебя до самой смерти. Спасибо. 🙂