2009-11-16 2 views
0

У меня есть COM и некоторые родные DLL, которые скомпилированы для устройства Win CE, которое у меня есть. Я хотел бы взглянуть на них, поэтому я могу создать приложение, которое ссылается на них, и расширяет функциональность некоторых программ, уже находящихся на устройстве. Когда я открываю их с помощью Dependency Walker или Visual Studio 2008, оба говорят мне, что они являются недопустимыми DLL. Однако я уверен, что они не повреждены, поскольку я извлек их из ПЗУ устройства вместе с другими файлами (bmps и т. П.), Которые не повреждены. Итак, я спрашиваю: это DLL-файлы WinCE принципиально отличаются от dll win32, и как таковые vs и зависит, не читает их правильно? Или что-то еще происходит?WinCE vs. Win32 dlls

Благодаря

ответ

0

Они, вероятно, не повреждены, но инструменты, которые ожидают х86 изображения (в отличие от ARM, MIPS, и т.д.) может дать, что вводит в заблуждение сообщение об ошибке, когда они сталкиваются с изображения, скомпилированные для другого процессора. Есть много подобных инструментов, которые могут помочь (PEDump и PEBrowsePro приходят на ум), разбросанных по сети, и поскольку формат PE переносимый (отсюда «portable исполняемый файл»), один из них обязан работать.

Кроме того, некоторые устройства защищают исполняемые файлы в ПЗУ от копирования. Возможно, устройство было повреждено ваши файлы, когда вы их скопировали. Быстрый просмотр в шестнадцатеричном редакторе должен показать это.

+0

Спасибо за помощь, я попробую некоторые из тех, о которых вы упомянули. – 2009-11-18 18:10:55

0

Dependency Checker будет работать с DLL WinCE (я использовал это довольно часто сам). Вы можете ожидать получить сообщения об ошибках, связанных с отсутствующими зависимостями, потому что Dependency Checker не будет знать, где найти Coredll.dll &, возможно, библиотеки MFC, потому что они не то же самое, что и настольные. Когда вы будете обучать Dependency Checker, вы также сможете разрешить эти ссылки.

В противном случае zildjohn01 прав, что вы иногда не можете копировать исполняемые файлы или библиотеки DLL из ПЗУ устройства WinCE. Это зависит от того, как создается образ ОС: если DLL или EXE включены как «МОДУЛИ», а не «ФАЙЛЫ», вы не можете их отменить.

+0

Благодарим за помощь. На самом деле файлы были модулями, что могло бы объяснить, почему они не работают. Я должен был извлечь их из обновления прошивки, которое у меня было для моего устройства, и сделать некоторые преобразования, чтобы превратить их в DLL. Вы знаете, как открыть/изучить модули WinCE? Могут ли они быть преобразованы/скомпилированы в DLL? Если это помогает, у меня первоначально был необработанный модуль (с файлами s0000, s0001 и т. Д.), И я использовал recmod (recompile module), чтобы скомпилировать его в dll, который, как я думал, даст рабочую dll ... Наверное, нет? Любые идеи из прошлого опыта? – 2009-11-18 18:09:36

+0

@hairchrm - не могу по-настоящему помочь вам здесь. Я боюсь, я не знаю достаточно о recmod или создает ли он нужные DLL (я его не использовал). – AAT

Смежные вопросы