COM базовый образец - PullRequest
       8

COM базовый образец

0 голосов
/ 28 февраля 2009

Я читал Essential COM , это очень хорошая книга, очень поучительная и простая для понимания. Теперь я хочу ускорить процесс и реализовать простой COM-объект, скомпилировать его в .dll и, наконец, использовать его из клиентского приложения.

Буду очень признателен, если кто-нибудь сможет показать самый простой пример того, как это сделать?

Я пытался с пошагово , но, кроме обнаружения некоторых ошибок, я не мог заставить его работать. Причина этого в том, что я создал простое приложение Win32, я начал кодировать COM с нуля (как показывает шаг за шагом) и не может скомпилировать / связать (много ошибок), я должен забыть какую-то конфигурацию или некоторые включает в stdafx.h или что-то еще.

Я работаю в Visual C ++ с Microsoft Visual Studio .Net 2003

Заранее спасибо!

1 Ответ

1 голос
/ 28 февраля 2009

Один из наиболее простых способов - использовать одно из созданных мастером решений, в частности мастер «Проект ATL» в VS 2008 (не уверен насчет 2003). Вы просто выбираете «DLL», когда вас спрашивают, какой тип сервера вам нужен, и у вас остается очень полезный скелет COM DLL, где можно заполнить ваш код.

Совет: чтобы добавить новый COM-интерфейс и Coclass, самый простой способ - перейти в View Class, щелкнуть правой кнопкой мыши по проекту и выбрать Add-> Class ..., затем выбрать «ATL Simple Object» и ответить вопросы мастера.

РЕДАКТИРОВАТЬ : чтобы ответить на дополнительный вопрос Тото в комментариях (как создать клиент для использования только что созданной COM DLL), ответ «это зависит от языка», поскольку у вас Огромный выбор здесь. Вы можете использовать VB («добавить ссылку»), C # / VB.NET («добавить ссылку», вкладка COM), VBScript (WScript.CreateObject) и, конечно, C ++. В двух словах, из клиента C ++ необходимо включить IDL сервера и ссылку на файл LIB сервера.

...