Образец атрибутов LABRADOR: реализация сервера без пользовательского интерфейса
Обновлен: Ноябрь 2007
В образце атрибутов LABRADOR показано, как с помощью библиотеки ATL реализовать EXE-сервер без пользовательского интерфейса. Сервер позволяет создать объект, поддерживающий два нестандартных интерфейса, определенных в файле Labrador.idl.
Примечание о безопасности. |
---|
Этот образец кода служит для демонстрации основных принципов и не предназначен для использования в приложениях или на веб-узлах, поскольку не может считаться примером наиболее безопасного кода. Корпорация Майкрософт не несет ответственности за случайные или косвенные убытки в случае использования образца кода не по назначению. |
Чтобы получить образцы и инструкции по их установке, выполните следующие действия.
В меню Справка среды Visual Studio выберите пункт Примеры.
Дополнительные сведения см. в разделе Поиск файлов примеров.
Самая последняя версия и полный список образцов доступны в Интернете на странице образцов Visual Studio 2008.
Кроме того, образцы находятся на жестком диске компьютера. По умолчанию образцы кода и файл Readme копируются в папку, находящуюся в папке \Program Files\Visual Studio 9.0\Samples\. Все образцы кода для экспресс-выпусков Visual Studio находятся в Интернете.
Построение и запуск образца
В этом образце используются три компонента: сервер, библиотека DLL маршалинга и драйвер.
Построение и регистрация компонентов
Откройте файл решения Labrador.sln
В меню Построение выберите команду Построить решение.
Будут построены и зарегистрированы сервер, библиотека DLL маршалинга и драйвер.
Запуск драйвера
Щелкните правой кнопкой мыши проект labdriv в обозревателе решений и выберите команду Назначить запускаемым проектом.
В меню Отладка выберите команду Запуск без отладки.
Драйвер создаст объект, совершит несколько вызовов объекта, а затем освободит объект.
Атрибуты
В этом образце используются следующие атрибуты:
aggregatable, coclass, default, emitidl, helpstring, in, module, object, out, progid, string, threading, uuid, version, vi_progid
Ключевые слова
В этом образце используются следующие ключевые слова:
_CrtDumpMemoryLeaks; _tcsicmp; _tcstok; _tprintf; _vstprintf; ATLASSERT; BEGIN_COM_MAP; BEGIN_OBJECT_MAP; CComModule::Init; CComModule::RegisterClassObjects; CComModule::RevokeClassObjects; CComModule::Unlock; CComModule::UnregisterServer; CComObjectRoot; CoCreateInstance; COM_INTERFACE_ENTRY; CoUninitialize; DECLARE_NOT_AGGREGATABLE; DECLARE_REGISTRY; DispatchMessage; END_OBJECT_MAP; GetCurrentThreadId; GetMessage; OBJECT_ENTRY; OutputDebugString; PostThreadMessage; Trace; va_end; va_list; va_start; wcscpy_s
Примечание. |
---|
Некоторые образцы, включая данный, не модифицировались с учетом изменений в мастерах, библиотеках и компиляторе Visual C++, однако по-прежнему демонстрируют выполнение требуемой задачи. |