COM-взаимодействие на Windows Mobile 6 - PullRequest
0 голосов
/ 13 января 2011

У меня есть приложение, написанное на C ++ и MFC (VS 2008 SP1), которое работает на Windows Mobile 6.1.Теперь мне нужно интегрировать функциональные возможности в это приложение, которое доступно только через библиотеку .NET от стороннего поставщика.

Моя идея заключалась в том, чтобы создать собственную сборку оболочки / фасада .NET вокруг этой библиотеки .NET, котораяпредоставляет функции, необходимые для моего проекта и для создания этой сборки COM-видимой для моего проекта C ++ / MFC.

При настройке проекта в VS 2008 для этой библиотеки-оболочки (C #,Тип проекта «Smart Device», тип «библиотека классов», целевая платформа .NET 2.0 (или 3.5), целевая платформа «Windows Mobile 6 Professional SDK») Я заметил, что параметры в свойствах проекта делают сборку COM-visible и для регистрации COM-Interop отключены (выделены серым цветом в диалоговых масках в VS).

(Когда я создаю "нормальный«(не для Smart Device) проект библиотеки классов для framework 2.0 доступны варианты.)

Вопросы:

  • 1) Поддерживается ли COM-Interop в Windows Mobileвообще?
  • 2) Если это так, поддерживается ли это специальное направление COM-Interop, которое мне нужно (сделать сборки .NET видимыми для COM-приложений) в Windows Mobile?
  • 3) ЕслиИтак, я делаю что-то не так, настраивая проект?
  • 4) Есть ли у меня какие-либо другие варианты решения проблемы, описанной в первом абзаце выше?

Спасибо большоезаранее за помощь!

1 Ответ

1 голос
/ 13 января 2011

Невозможно создать управляемый COM-объект в CF, поскольку хостинг не поддерживается.

Единственный способ обратиться к управляемому коду из собственного кода (кроме обратных вызовов и т. Д., Инициированных управляемой стороной) - это создать отдельный управляемый исполняемый файл, работающий в своем собственном процессе, и использовать IPC.

...