Где я могу получить активную библиотеку шаблонов? - PullRequest
8 голосов
/ 18 апреля 2009

Я никогда раньше не работал с COM, и мне было поручено написать приложение, использующее некоторые сторонние COM-объекты. Если бы кто-нибудь мог указать мне на хорошие уроки о том, как их использовать, это было бы очень ценно. Более того, похоже, что у меня не установлена ​​библиотека активных шаблонов. Я искал в Интернете, но не могу понять, как его получить.

Ответы [ 6 ]

4 голосов
/ 18 апреля 2009

Это часть Microsoft Visual Studio (но не Express Edition .)

3 голосов
/ 18 апреля 2009

Как указал Дэн, они распространяются вместе с Visual Studio.

Если у вас нет Visual Studio, вы можете получить библиотеки ATL из одного из распространяемых пакетов Microsoft Visual C ++:

Примечание. Помеченные в 2005 году версии 8 (atl80.dll), помеченные в 2008 году версии 9 (atl90.dll).

3 голосов
/ 18 апреля 2009

Я думаю, что вам нужно иметь копию Visual Studio 2005 или 2008 (не Express), чтобы получить ATL. Если у вас установлена ​​одна из них, но у вас нет ATL, перейдите в «Панель управления: Установка и удаление программ» и выполните установку «Изменить» (с программным компакт-диском или DVD-дисководом в дисководе) и убедитесь, что флажок установлен. для ATL проверено.

2 голосов
/ 18 апреля 2009

Что касается учебников :

Я не нашел действительно хорошего онлайн. При использовании ATL / COM есть несколько OK страниц:

  • Активная библиотека шаблонов делает Создание компактных COM-объектов Радость от Дона Бокса (ветеран-гуру COM). Эта статья начинается: «Я люблю COM. COM это хорошо. Как хороший пилснер или эль, COM никогда не разочаровывает. В На самом деле, чем больше я смотрю на COM, тем больше мне это нравится. К сожалению работаю в C ++, и C ++ не разделяет мои благодарность за прекрасные вещи в жизнь ". Несмотря на гроссмейстерские прозелитизм, и тот факт, что это 12 лет сейчас, это очень хорошо статья ...
  • Отличный учебник Майка Данна по COM в CodeProject.
  • Советы DevGuy по C ++ COM - своего рода мешанина ссылок и предложений.
  • Поваренная книга программиста COM - эта древняя (1995 г.) статья неплоха, несмотря на ее возраст и тот факт, что в ней описывается реализация COM-объектов в C, а не в C ++ (явные таблицы vtables!)

Я немного ржавый с COM и ATL, но если я правильно помню, классы, которые вы захотите узнать, вы будете использовать чаще всего (особенно если вы используете COM-объекты кого-то другого, а не чем реализация своих собственных) - это CComBSTR, CComPtr и CComVariant. Кроме того, оператор #import в Visual C ++ значительно упрощает использование внешних объектов COM, он генерирует класс интеллектуальных указателей для вас из внешней DLL или EXE.

Если вы собираетесь реализовывать COM-объекты, я настоятельно рекомендую получить копию ATL Internals (есть более новая редакция, охватывающая ATL v8). Да, в некоторых разделах речь идет о мрачных подробностях, но даже в качестве вступительной книги она довольно хорошо написана.

Если вы никогда не использовали COM раньше, «классические» книги Essential COM и Effective COM очень хороши, и вы, вероятно, можете получить их недорого из ваших любимых источников использования. книг. Вы также захотите познакомиться с идиомой RAII , если вы еще этого не сделали.

Группа новостей microsoft.public.vc.atl очень хороша для того, чтобы задавать конкретные вопросы. (хотя, как правило, они более грубые, чем в StackOverflow)

Осторожно: с COM есть много маленьких ошибок, хотя ATL помогает сделать его намного проще и без лишних хлопот. Методы «симулированного динамического связывания», также известные как CRTP , полезны в мире C ++, не только в контексте ATL / COM, но особенно, если вы разрабатываете библиотеку повторно используемых классов, которые вы хотите создать в подклассе или смешать в ситуации, когда одновременно присутствует только один экземпляр (например, класс CSpiffyFramework, который предоставляет смешанную функциональность, которую вы хотите многократно использовать, и у вас есть производный класс, который вы хотите включить эту функциональность, и он не является частью модели виртуальных объектов так что вам на самом деле не нужен vtable).

Удачи!

0 голосов
/ 14 декабря 2017

вот как использовать atl с vs express:

вам нужен WDK 7.1.0:

https://www.microsoft.com/en-us/download/details.aspx?id=11800

  1. Загрузить Visual Studio Express Edition

    Получите VS Express C ++ бесплатно от Microsoft

  2. Загрузите бесплатно доступный комплект драйверов Windows (7.1 или более поздней версии) от Microsoft

    Получите WDK 7.1.0 бесплатно от Microsoft

    Вы можете смонтировать файл ISO с помощью Virtual Clone Drive или распаковать его с помощью 7-zip.

  3. Установите WDK и выберите опцию «Построить среду»

    Это установит заголовок ATL и MFC и файлы lib. ATL является требованием для FireBreath на окнах. Убедитесь, что вы установили его в папку по умолчанию, чтобы FireBreath мог его найти

  4. Для VS Express 2010

    Если вы используете более старую версию FireBreath, этот пост от scjohn может быть полезен для вас. Обратите внимание, что FireBreath 1.4 beta 1 и более поздних версий эти шаги больше не нужны!

http://www.firebreath.org/display/documentation/Building+with+Visual+Studio+Express

[vs2010 express include path]

C: \ WinDDK \ 7600.16385.1 \ вкл \ atl71

[vs2010 путь экспресс-библиотеки]

C: \ WinDDK \ 7600.16385.1 \ Lib \ АТЛ \ i386

0 голосов
/ 12 ноября 2013

Я установил это: http://www.microsoft.com/en-us/download/details.aspx?id=3138 и получил компилятор C ++ и все такое на моем сборочном сервере, но без библиотек ATLMFC. Перечисленные выше редист-пакеты - это просто перераспределяемые файлы, а не заголовки и включаемые файлы. После долгих поисков я закончил установку vs2008 на сервере, дерьмо.

...