У нас есть приложение (средство тестирования), если я запускаю exe и в той же библиотеке есть DLL, она работает правильно. Если я переместить библиотеку DLL в c:\windows\system32 и попробую exe, произойдет сбой со следующим сообщением. Windows 8.1 планшет.

Какие-нибудь подсказки, что могло бы продолжаться? Также пытался подписать DLL, не идти.

"либо не предназначен для работы в Windows, либо содержит ошибку. Попробуйте установить ...... Состояние ошибки 0xc0000428 "

3 ответа3

0

В системе может быть две версии DLL (с одинаковым именем), одна из которых совместима с вашей системой, а другая - нет.

Когда у вас есть «правильная» DLL в папке с EXE-файлом, это первое место, которое он проверяет, и поэтому находит правильную и использует ее.

Если вы переместите эту рабочую DLL в System32, она будет в ПУТИ, но теперь она находится ниже в списке порядка поиска. Как далеко вниз зависит от вашего PATH.

Если нерабочая версия DLL попадает в порядок поиска перед тем, который вы переместили в System32, программа попытается использовать эту версию (так как она нашла ее первой).

Найдите во всех папках вашей системы другие версии этой библиотеки DLL и (пере) переместите ее, если это возможно, чтобы вывести ее из порядка поиска путей к DLL.

0

Это была проблема с подписью. После того, как мы включили режим аудита, мы были в порядке (больше нет сообщений об ошибках). Мы разберемся, какая сторона должна подписать какой компонент, но, по крайней мере, мы знаем, где искать.

Спасибо всем, кто принял участие.

0

Что бы это ни было .exe-файла, очевидно, его нужно запускать в том же каталоге, что и DLL-файл. Исполняемый файл не может найти .dll, необходимый ресурс для правильной работы приложения, если он находится за пределами того же рабочего каталога. Если вы не являетесь (или не знаете) программистом, разработавшим приложение, маловероятно, что у исполняемого файла есть возможность найти этот .dll, если он не находится в том же каталоге. Вы можете создать ярлык для .exe и сохранить пары .exe+.dll в другом каталоге.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .