#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, чтобы я мог купить вам выпить. Жаль, что в настоящее время я беден, но я буду помнить тебя до самой смерти. Спасибо. 🙂