2015-09-22 6 views
0

У меня проблема с регистрационным dll-файлом.Проблемы с регистрацией DLL-файла в Windows 7 64-разрядный

Я скопировал test.dll файл C: \ Windows \ SysWOW64 и C: \ Windows \ System32 каталоги.

Я пытался зарегистрировать с помощью 32-битной версии regsvr32.exe:

C:\Windows\SysWOW64> c:\Windows\SysWOW64\regsvr32.exe C:\Windows\SysWOW64\test.dll 

А с использованием 64-битной версии regsvr32.exe:

C:\Windows\System32> c:\Windows\System32\regsvr32.exe C:\Windows\System32\test.dll 

В обоих случаях ошибка : Модуль «C: \ Windows \ SysWOW64 (или System32) \ test.dll» может не соответствовать версии WIndows, которую вы используете. Проверьте, совместим ли модуль с x84 (32-разрядной) или x64 (64-разрядной) версией regsvr32.exe.

проверить test.dll зависимостей:
- C: \ WINDOWS \ system32 \ KERNEL32.DLL
- C: \ Windows \ system32 \ USER32.DLL
- C: \ Windows \ system32 \ advapi32 .DLL
- .........
- C: \ Windows \ system32 \ jvm.dll

Последние длл (jvm.dll) Я скопировал из C: \ Program Files \ Java \ jre1.8.0_60 \ bin \ server - C: \ windows \ system32, потому что мой te st.dll с помощью jvm.dll.

я пытался сделать, как написано here, но без результата ...

Помогите мне пожалуйста.

+0

Не копируйте файлы в папку system32, чтобы хранить их в собственной папке. – Totonga

+0

Я пробовал - не помогает. Та же ошибка. –

+0

Сначала вам нужно решить, является ли это 32-разрядным или 64-разрядным исполняемым файлом. Это не может быть и то, и другое. И тогда вам нужно убедиться, что вы скопируете правильный вкус любых DLL, в которых он нуждается.Закон Мерфи утверждает, что это фактически 32-битный исполняемый файл, и вы скопировали 64-битную версию jvm.dll. Так что он не может работать в любом случае :) –

ответ

0

Я бы не скопировал dll в системный путь, но сохранил их в собственной папке.

Вы можете использовать dependency walker, чтобы проверить битности зависимостей ваших библиотек DLL и их зависимостей. Подвижный ходок добавит маленькую к значку dll. Смеси не допускается. Либо его 64, либо 32 бит.

Содержит ли битту test.dll биты jvm.dll.

В дополнение вы можете использовать зависимый ходок для загрузки regsvr32.exe и использовать Profile-> Start Profiling, чтобы увидеть, какие DLL, из которых путь выбирается при регистрации вашего элемента управления.

Я бы предположил, что невозможно просто скопировать jvm.dll, но вам нужно добавить его в путь, потому что это дополнительные зависимости. Подвижность тоже покажет это.

+0

Я использую ходу зависимостей. Список зависимостей в верхней части программы. Вопрос и проблема разные: когда вы постоянно используете эту ошибку (модуль «C: \ Windows \ SysWOW64 (или System32) \ test.dll» может не соответствовать версии WIndows, которую вы используете. Проверьте, совместим ли модуль с x84 (32-разрядной) или x64 (64-разрядной) версией regsvr32.exe.). Система у меня 64-разрядная. –