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


Образец QStat: создание оболочки для COM-объекта, чтобы предоставить доступ к бизнес-логике

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

В образце QStat показано, как создать библиотеку DLL, которая служит оболочкой для доступа к COM-объекту и делает его функции доступными для клиентов .NET Framework, использующих С++.

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

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

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

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

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

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

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

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

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

  1. В интегрированной среде разработки Visual Studio загрузите файл решения QStat.sln.

  2. В обозревателе решений щелкните правой кнопкой мыши решение QStat.

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

Запуск образца

  1. В обозревателе решений щелкните правой кнопкой мыши проект netClient.

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

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

800dt86w.alert_note(ru-ru,VS.90).gifПримечание.

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

Описание проекта

Главной задачей образца является доступ к бизнес-логике из клиентов COM и .NET Framework. В образце не рассматривается реализация бизнес-логики, поэтому используемая бизнес-логика не представляет существенного интереса. Фактически, в этом случае бизнес-логика выполняет простые арифметические действия (вычисление среднего геометрического, среднего гармонического и среднего квадратичного), возвращая результат клиенту.

В общем случае рекомендуется отделять бизнес-логику от служебных элементов, обеспечивающих к ней доступ (в данном случае — COM-объекты). Однако в этом образце предполагается, что бизнес-логика реализована непосредственно в COM-объекте, который будет обрабатываться, и доступ к базовой бизнес-логике можно получить только через этот COM-объект.

Образец создает библиотеку-оболочку, которая получает COM-объект через директиву #import и делает класс .NET Framework доступным для обработки в клиентах .NET Framework. Это выполняется путем объявления собственного класса C++ nativeMeanCalc, который содержит элемент данных интеллектуального указателя COM, который добавлен в проект директивой #import. Определяется класс .NET Framework, который содержит указатель на собственный класс C++. Класс .NET Framework netMeanCalc содержит указатель на объект nativeMeanCalc, который завершает путь к COM-объекту назначения. Класс netMeanCalc является открытым классом, который будет обрабатываться клиентами .NET Framework.

В решение входят два клиентских проекта:

  • nativeClient является клиентом COM и реализуется в собственном коде C++;

  • netClient написан с использованием нового синтаксиса для C++.

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

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

__gc; #using; #import; try; catch; _com_error; Console::WriteLine

См. также

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

Примеры взаимодействия