Пошаговое руководство: Hello World. Пример COM-взаимодействия для смарт-устройств
Обновлен: Ноябрь 2007
Это пошаговое руководство объединяет в одном решении простой COM-объект и управляемое приложение.
Примечание. |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Это пошаговое руководство было написано с помощью параметров разработки Visual C++.
Создание COM-объекта
Чтобы создать проект ATL смарт-устройства
В меню Файл выберите Создать, щелкните Проект, разверните узел Visual C++ в области Типы проектов, затем щелкните Смарт-устройства.
В области Шаблоны щелкните Проект смарт-устройства библиотеки ATL.
В поле Имя введите HelloCOMObject.
В поле Имя решения введите InteropSolution.
Нажмите кнопку ОК для запуска мастера проектов интеллектуальных устройств ATL.
Нажмите кнопку Готово, чтобы завершить работу мастера.
В рамках этого пошагового руководства не понадобиться изменять параметры по умолчанию в этом мастере.
Чтобы добавить класс
В обозревателе решений щелкните правой кнопкой мыши проект HelloCOMObject, выберите команду Добавить и щелкните пункт Класс для открытия диалогового окна Добавление класса.
В области Категории щелкните пункт Смарт-устройство.
В области Шаблоны щелкните Простой объект ATL и щелкните команду Добавить для открытия мастера простых объектов ATL.
В поле Краткое имя введите Hello.
В левой области щелкните пункт Параметры для открытия страницы Параметры.
В группе Потоковая модель выберите пункт Свободен и нажмите кнопку Готово.
Чтобы добавить метод к классу
Откройте окно Классы на вкладке рабочего стола или из меню Вид.
Разверните узел HelloCOMObject для отображения интерфейса IHello.
Щелкните правой кнопкой мыши интерфейс IHello, выберите команду Добавить и щелкните команду Добавить метод для запуска мастера добавления метода.
В поле Имя метода введите HelloWorld.
В поле Тип параметра выберите значение BSTR*.
В поле Имя параметра введите текст.
В группе Атрибуты параметра выберите out.
Нажмите кнопку Добавить.
В окне метода отображается [out] BSTR* text.
Нажмите кнопку Готово для закрытия мастера добавления метода.
Будет отображен метод STDMETHOD(HelloWorld)(BSTR* text) в файле Hello.h.
Чтобы добавить реализацию в метод
В обозревателе решений дважды щелкните Hello.cpp для открытия этого файла в редакторе кода.
В разделе STDMETHODIMP вставьте приведенный ниже код реализации до оператора возвращения:
*text = SysAllocString(L"Hello World!");
В меню Построение выберите команду Построить HelloCOMObject.
Теперь COM-объект является частью решения, что завершает первую часть этого пошагового руководства.
Создание управляемого проекта
Чтобы добавить управляемый проект в решение
В обозревателе решений щелкните правой кнопкой мыши InteropSolution и последовательно выберите пункты Добавить и Создать проект.
В области Типы проектов разверните узел Visual C#, щелкните Смарт-устройство, затем Проект интеллектуальных устройств в области Шаблоны, введите SayHello в поле Имя и нажмите кнопку ОК.
В диалоговом окне Добавление нового проекта интеллектуального устройства щелкните пункт Приложение устройства и нажмите кнопку ОК.
Управляемый проект SayHello будет создан как часть решения, после чего в окне конструктора будет отображена форма Windows Mobile 5.0 Pocket PC.
Добавление COM-объекта в управляемый проект в качестве ссылки
Чтобы добавить COM-объект в управляемый проект в качестве ссылки
В обозревателе решений щелкните проект SayHello правой кнопкой мыши и выберите команду Добавить ссылку.
В диалоговом окне Добавление ссылки нажмите кнопку Обзор.
Папка SayHello отображается в поле Поиск.
Перейдите к родительской папке (в этом пошаговом руководстве — InteropSolution).
В окне, в котором отображается содержимое папки, дважды щелкните HelloCOMObject, дважды щелкните Windows Mobile 5.0 Pocket PC SDK (ARMV4), дважды щелкните пункт Отладка и, наконец, щелкните HelloCOMObject.dll.
Нажмите кнопку ОК для закрытия диалогового окна Добавление ссылки.
Примечание. Необходимо войти в систему с правами администратора. В Windows Vista выберите Запуск от имени администратора при запуске Visual Studio.
В обозревателе решений щелкните правой кнопкой мыши файл Form1.cs и выберите пункт Перейти к коду.
В разделе Using directives в верхней части файла добавьте следующий код:
using HelloCOMObjectLib;
Добавление обработки событий в управляемый проект
Чтобы добавить обработку событий в управляемый проект и построить последний
Откройте конструктор Form1.
Из панели элементов перетащите в форму элемент управления Button.
Дважды щелкните кнопку, чтобы открыть редактор кода на событии щелчка.
Вставьте для кнопки следующий код обработки события:
string text; HelloClass h = new HelloClass(); h.HelloWorld(out text); MessageBox.Show(text);
В меню Построение выберите команду Построить SayHello.
Внесение завершающих изменений в решение
Чтобы настроить решение для развертывания
В обозревателе решений щелкните правой кнопкой мыши проект SayHello и выберите команду Назначить запускаемым проектом.
В окне обозревателя решений щелкните правой кнопкой мыши решение InteropSolution и выберите команду Зависимости проектов.
В диалоговом окне Зависимости проектов выберите SayHello в раскрывающемся списке Проекты, затем в окне Зависит от выберите HelloCOMObject.
Нажмите кнопку OК.
Решение готово к развертыванию.
Развертывание смешанного решения
Чтобы развернуть решение
В меню Отладка выберите пункт Запуск без отладки.
В диалоговом окне Развертывание выберите Эмулятор Windows Mobile5.0 Pocket PC и нажмите кнопку Развернуть.
Сохраните это решение для использования в разделе Пошаговое руководство. Отладка решения, которое содержит как управляемый, так и машинный код.
См. также
Основные понятия
COM-взаимодействие для устройств