Поделиться через


Образец LABRADOR: реализация сервера без пользовательского интерфейса

Обновлен: Ноябрь 2007

В образце LABRADOR показано, как с помощью библиотеки ATL реализовать EXE-сервер без пользовательского интерфейса. Сервер позволяет создать объект, поддерживающий два нестандартных интерфейса, определенных в файле Labrador.idl.

Образец атрибутов LABRADOR представляет версию данного образца с поддержкой атрибутов.

wc9s55de.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

Этот образец кода служит для демонстрации основных принципов и не предназначен для использования в приложениях или на веб-узлах, поскольку не может считаться примером наиболее безопасного кода. Корпорация Майкрософт не несет ответственности за случайные или косвенные убытки в случае использования образца кода не по назначению.

Чтобы получить образцы и инструкции по их установке, выполните следующие действия.

  • В меню Справка среды Visual Studio выберите пункт Примеры.

    Дополнительные сведения см. в разделе Поиск файлов примеров.

  • Самая последняя версия и полный список образцов доступны в Интернете на странице образцов Visual Studio 2008.

  • Кроме того, образцы находятся на жестком диске компьютера. По умолчанию образцы кода и файл Readme копируются в папку, находящуюся в папке \Program Files\Visual Studio 9.0\Samples\. Все образцы кода для экспресс-выпусков Visual Studio находятся в Интернете.

Построение и запуск образца

В этом образце используются три компонента: сервер, библиотека DLL маршалинга и драйвер.

Построение и регистрация компонентов

  1. Откройте файл решения Labrador.sln

  2. В меню Построение выберите команду Построить решение.

    Будут построены и зарегистрированы сервер, библиотека DLL маршалинга и драйвер.

Запуск драйвера

  • В меню Отладка выберите команду Запуск без отладки.

    Драйвер создаст объект, совершит несколько вызовов объекта, а затем освободит объект.

Ключевые слова

В этом образце используются следующие ключевые слова:

_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

См. также

Другие ресурсы

Образцы ATL