Я пытаюсь создать элемент управления ActiveX для приложения на устройстве Windows CE 6.0, но я не могу его зарегистрировать на устройстве. Когда я переношу файл .ocx на устройство и пытаюсь зарегистрировать его с помощью regsvrce.exe, он терпит неудачу с ошибкой 7e, которую я узнал, потому что отсутствует зависимость. Как я могу определить, какая зависимость отсутствует? В качестве альтернативы, я неправильно решил создать элемент управления ActiveX?Отсутствует зависимость для .ocx в Windows CE 6.0
Я загрузил .ocx в Dependency Walker на моей машине разработки (в этом случае работает 64-разрядная версия Windows 7, если это имеет значение), а все зависимости верхнего уровня, которые он перечисляет, присутствуют на устройстве CE. Я не могу проверить дальнейшее дерево, так как Depends затем ищет зависимости верхнего уровня на моей машине разработки, половина из которых отсутствует, так как они зависят от CE. Dependency Walker не запускается на устройстве CE (если нет версии CE, которую я пропустил?). Я попытался скопировать DLL с устройства CE на флеш-накопитель, чтобы я мог загрузить их в DW на моей машине разработки, но устройство не позволит мне это сделать. К сожалению, инструмент OEM, который у меня есть для передачи файлов, переносит только на устройство. [Редактировать: я не пробовал написать свой собственный инструмент, чтобы попытаться вытащить файлы с устройства на машину разработки.]
Некоторые сведения о том, как я настроил проект, в случае, если у меня есть некоторые ошибочные предположения относительно этого конец. Я пробовал с двумя проектами. У меня есть мой код (сам элемент ActiveX - это просто графическое представление некоторых данных, которые я изначально настроил в элементе управления Win32 ActiveX, чтобы увидеть, как он выглядит), а другой - чистый проект, созданный из шаблона, скомпилированный , загружается на устройство; код не добавлен или не изменен. Оба имеют тот же результат при попытке зарегистрироваться.
- Использование VS2005, создание проекта с использованием шаблона «MFC Smart Device ActiveX Control», ориентированного на SDK, полученный мной от OEM.
- В случае проекта с моим кодом в нем я скопировал код чертежа в проект и создал необходимые свойства для ввода данных. Я могу предоставить более подробную информацию о моем коде, если это поможет, но моя проблема возникает даже без кода. Я предполагаю, что, поскольку он успешно компилируется при таргетинге SDK от OEM, функции, которые я использую, должны быть доступны на целевом устройстве.
- Создайте проект в конфигурации Release (я задавался вопросом, отсутствуют ли библиотеки отладки на целевом устройстве и что вызывает проблему).
- Перенесите файл .ocx на целевое устройство с помощью OEM-инструмента.
- Запустите командную строку на целевом устройстве, перейдите в каталог .ocx, запустите «regsvrce.exe .ocx». Я также попытался передать все файлы, которые VS оставляет в выходной папке сборки, но результат тот же.
Большое спасибо за любые ответы! Если вы увидите что-то очевидное - это мой первый проект ActiveX и мой первый проект CE, поэтому очень возможно, что я пропустил что-то основное.
У вас есть надлежащие библиотеки MFC на устройстве (mfccexxx.dll, а также версия выпуска или отладки и т. Д.)? Я не помню, чтобы VS05 использовал более новые библиотеки MFC для связывания приложений, чем Platform Builder, помещал в образ ОС, но я подозреваю, что это так. Я знаю, VS 08 делает. – ctacke
Устройство имеет mfcce400.dll. Как я могу проверить, какая библиотека VS используется для связи приложения? Я бы подумал, что VS2005 будет использовать ту же версию, что и Platform Builder в ОС, поскольку Platform Builder - это плагин для VS2005, но всегда полезно проверять допущения. – Eran