Произошла ошибка в программе инициализации dll библиотеки динамической компоновки

Обновлено: 21.11.2024

Привет всем,
Прежде чем опубликовать это, я провел поиск с той же строкой темы и перепробовал все возможные способы, предложенные в этих темах, но это мне не помогло,
Поэтому, наконец, я решил опубликовать свою проблему. .
Вот оно,
У меня есть программа на Java, которая должна взаимодействовать с программой на C.
Этот код C включен в файл lib test.dll, он также имеет некоторые зависимые библиотеки, которые я включил в переменную среды PATH на моей локальной машине.
я написал код как
System.loadLibrary("test");
при запуске моей программы с использованием eclipse я включил -Djava.library.path=C:\clibraries\ в аргументы виртуальной машины.

я пытаюсь запустить свой код, и он выдает
java.lang.UnsatisfiedLinkError: C:\clibraries\test.dll: сбой процедуры инициализации библиотеки динамической компоновки (DLL)

пожалуйста, дайте мне знать возможные области для изучения.

Заранее спасибо.

Комментарии

Привет, Sabre,
первоначально, когда я запускал свой код Java, я получал сообщение о том, что зависимая библиотека не найдена.
и все зависимые библиотеки находятся в другой папке, например,
c:\dependlibraries\lib
я добавил вышеуказанное в переменные среды PATH, и с тех пор я не получаю сообщения, связанные с зависимыми библиотеками .
как указано в моем первом сообщении, когда я где-то искал на форумах, я обнаружил, что нам нужно добавить путь к библиотеке в переменные среды, что я и сделал.
Я пытался сделать то же самое для моего файла test.dll, но это не сработало.
есть предложения?

gs_ravishankar написал:
Привет, Сабре,
первоначально, когда я запускал свой java-код, я получал сообщение о том, что зависимая библиотека не найдена.
и все зависимые библиотеки находятся в другой папке, например,
c:\dependlibraries\lib
я добавил вышеуказанное в переменные среды PATH, и с тех пор я не получаю сообщения, связанные с зависимыми библиотеками .
как указано в моем первом сообщении, когда я где-то искал на форумах, я обнаружил, что нам нужно добавить путь к библиотеке в переменные среды, что я и сделал.
Я пытался сделать то же самое для моего файла test.dll, но это не сработало.
есть предложения?

Разве вы не думали загружать библиотеки зависимостей таким же образом, как вы загружали свою «тестовую» библиотеку?

Привет, Сабре,
я думал так же, как и ты, но когда он работал, устанавливая путь, поэтому я не слишком беспокоился о них.
главное для меня - заставить загружаться test.dll.

gs_ravishankar написал:
java.lang.UnsatisfiedLinkError: C:\clibraries\test.dll: сбой процедуры инициализации библиотеки динамической компоновки (DLL)

Эта ошибка, как правило, не указывает на сбой загрузки библиотеки. Это не может быть вызвано неявной загрузкой библиотеки ОС.

В dll может быть процедура, которая вызывается при загрузке dll. Если это не удается, dll не загружается. Именно на это указывает ошибка. Единственный способ, которым это может быть вызвано проблемой с зависимой библиотекой, это если бы эта подпрограмма выполняла динамическую загрузку другой библиотеки, при этом возникала ошибка, а затем вызывала сбой всей подпрограммы.

Эта проблема не имеет ничего общего ни с java, ни с JNI. Это связано с пониманием того, как работает библиотека, которую вы используете. Это может быть вызвано множеством причин, таких как отсутствие файла конфигурации, отсутствие значения лицензии, отсутствие ресурса, неправильное использование библиотеки или даже ошибка в библиотеке.

Тот факт, что у вас есть другой исполняемый файл, который успешно его использует, означает только то, что этот исполняемый файл имеет то, чего нет в вашем Java/JNI. Если, конечно, это не ошибка или неправильное использование.

Я пытаюсь использовать nodegit и электрон для кроссплатформенного приложения. Когда я запускаю Windows 10, я получаю:

Неперехваченная ошибка: сбой процедуры инициализации библиотеки динамической компоновки (DLL). из node_modules\nodegit\dist\nodegit.js:15

Я пробовал комбинации электрон 1.0.2 и nodegit (для которого, похоже, нет предварительно собранного бинарного файла) и электрон 0.37.8 (именно так выглядит последний .tar.gz на S3). быть, поэтому я переключился на использование 0.37.8).

мой файл packages.json содержит (конфигурация для версии 0.37.8):

Я добавил строку atom-shell под Engines из-за более ранней проблемы, которую я обнаружил, когда гуглил по этой же проблеме.

Я устанавливал просто с помощью npm install electronic-prebuilt и npm install nodegit . Установка из загруженного вручную tar.gz вызвала у меня проблемы (ошибка ENOENT, которая кажется проблемой npm).

Другая (возможно, актуальная) информация:

Текст был успешно обновлен, но возникли следующие ошибки:

комментарий jschr от 25 мая 2016 г.

Та же ошибка возникает и в Windows 10. Узел 6.2.0

johnhaley81 прокомментировал 8 июня 2016 г.

Попробуйте поместить это в .npmrc в корне вашего проекта

Изменение значений при необходимости.

danielmhair прокомментировал 21 июня 2016 г.

У меня такая же ошибка. @ johnhaley81, я сделал, как ты посоветовал. Та же ошибка.

danielmhair прокомментировал 21 июня 2016 г.

На самом деле мое сообщение об ошибке немного отличается:

danielmhair прокомментировал 21 июня 2016 г.

johnhaley81 прокомментировал 21 июня 2016 г.

Это происходит с пакетом oracledb, а не с nodegit.

прокомментировал neloe 22 июня 2016 г.

Содержимое файла .npmrc, приведенное выше, решило мою проблему (я хотел протестировать его на нескольких машинах, на которых мне не удалось собрать его вручную). Спасибо!

прокомментировал danielmhair 22 июня 2016 г. •

Для получения более подробной информации о моей машине, если это кому-то нужно, я использую Windows 10 с oracledb v1.9.3 , электронной сборкой v1.2.3 , электронной перестройкой v1.1.5 и узлом v6.2.1 и npm v3.10.2 .< /p>

ochukai прокомментировал 20 сентября 2018 г.

TerryChan прокомментировал 6 декабря 2018 г. •

Попробуйте поместить это в .npmrc в корне вашего проекта

Изменение значений при необходимости.

У меня возникла та же проблема, когда я установил nodegit в Windows 10 — в электронном. Я могу успешно установить nodegit без .npmrc, но когда я запускаю приложение elctron, я получаю проблему «Библиотека динамической компоновки», которая такая же, как и у автора.
После того, как я добавил .npmrc в свою корневую папку, а затем снова установил nodegit, сборка nodegit не удалась:

npm ОШИБКА! код ELIFECYCLE
npm ERR! errno 1
npm ERR! nodegit@0.23.0 установить: скрипты жизненного цикла узла/предустановить && скрипты жизненного цикла узла/установить
npm ERR! Статус выхода 1
npm ERR!
npm ОШИБКА! Ошибка сценария установки nodegit@0.23.0.
npm ОШИБКА! Вероятно, это не проблема с npm. Выше, вероятно, есть дополнительные выходные данные журнала.

npm ОШИБКА! Полный журнал этого запуска можно найти в:

Знаете ли вы, как решить эту проблему? Я действительно хочу использовать nodegit в своем электронном приложении, так как оно действительно мощное.

Кстати, я могу успешно использовать nodegit в приложении nodejs, но потерпел неудачу в электронном приложении. На моей машине установлен vs2017.

Организациям требуются системы виртуализации, которые не только поддерживают различные типы приложений, но и упрощают ИТ-инфраструктуру.

Виртуализация приносит экономию средств и экономит время ИТ-специалистам, которые курируют роботов-роботов. Для эффективной реализации требуется облачная среда.

Администраторы часто сравнивают Xen и KVM как варианты с открытым исходным кодом. Основными факторами, которые следует учитывать при выборе основного гипервизора, являются организационные факторы.

Nvidia запустила облачную версию своей платформы Omniverse для 3D-моделирования. Компания также представила Omniverse .

Преодолейте сбои AWS, научившись создавать многорегиональную архитектуру, обеспечивающую отказоустойчивость в случае аварии.

Чтобы добиться высокой доступности и отказоустойчивости в AWS, ИТ-администраторы должны сначала понять различия между двумя моделями.

Хороший дизайн базы данных необходим для удовлетворения потребностей обработки в системах SQL Server. На вебинаре консультант Коэн Вербек предложил .

Базы данных SQL Server можно переместить в облако Azure несколькими способами. Вот что вы получите от каждого из вариантов .

В отрывке из этой книги вы познакомитесь с методами LEFT OUTER JOIN и RIGHT OUTER JOIN и найдете различные примеры создания SQL.

ИТ-администраторам, рассматривающим возможность перехода на Windows 11, следует узнать, как функции версии Enterprise могут помочь их .

Последняя сборка для разработчиков Windows 11 позволяет открывать несколько папок в приложении для управления файлами. Предполагается, что эта функция .

Администраторам настольных компьютеров следует обратить внимание на собственные функции безопасности и архитектуру Windows 10, чтобы установить базовый уровень рабочего стола.

Перенаправление папок может поддерживать среду виртуального рабочего стола с перемещаемыми профилями, предоставляя пользователям единообразие при .

Люди, использующие виртуальный рабочий стол VMware на смартфонах и планшетах Samsung, могут получить доступ к Windows как на устройстве, так и на .

Организациям с виртуальными рабочими столами следует планировать свою стратегию управления профилями, и одним из ключевых компонентов является профиль .

При запуске Lightroom Classic или Lightroom 6 на компьютере с Windows появляется сообщение об ошибке:

Сбой загрузки библиотеки с ошибкой 1114: сбой процедуры инициализации dll библиотеки динамической компоновки.

Ошибка загрузки библиотеки: ошибка 1114

Затронутые версии продукта

Lightroom Classic и Lightroom 6

Операционная система

Windows 7 и более поздние версии

Эта проблема возникает на ноутбуках Windows с графической картой AMD или NVIDIA, когда для параметра производительности Lightroom в программном обеспечении графической карты установлено значение Оптимизировать производительность графики.

Вы можете столкнуться с этой проблемой на рабочем столе Windows, если у вас более одной видеокарты. Чтобы решить проблему, возникающую из-за конфликтующих графических драйверов, выполните шаги 5 и 6 в разделе Решение 3. Шаги по устранению неполадок графического процессора и графического драйвера.

Прежде чем выполнять шаги решения, указанные ниже, убедитесь, что ваша видеокарта указана в списке рекомендуемых графических карт и что у вас установлена ​​последняя версия драйвера для вашей видеокарты.

Чтобы решить эту проблему на ноутбуке с Windows, выполните шаги решения в указанном ниже порядке:

Установите настройку графики для Lightroom на «Высокая производительность»

В настройках программного обеспечения видеокарты измените настройку графики для Lightroom Classic или Lightroom 6 на «Высокая производительность».

Видеокарта AMD

  1. Щелкните правой кнопкой мыши в любом месте рабочего стола и выберите AMD Catalyst Control Center или Configure Switchable Graphics.
  2. Нажмите «Обзор», добавьте Lightroom.exe в список приложений, а затем выберите «Высокая производительность» вместо «Энергосбережение».

Видеокарта NVIDIA

  1. Щелкните правой кнопкой мыши в любом месте рабочего стола и выберите панель управления NVIDIA.
  2. Нажмите "Управление настройками 3D".
  3. Нажмите «Настройки программы» и добавьте Lightroom.exe. Измените предпочтительный графический процессор на высокопроизводительный процессор NVIDIA.

Дополнительную информацию см. в справочной документации NVIDIA: Как создать настройки Optimus для новой программы?

Установите для параметра питания переключаемой динамической графики значение «Максимальная производительность»

Щелкните правой кнопкой мыши значок Windows. В появившемся списке нажмите «Электропитание».

Откроется окно настроек Power & Sleep. Нажмите «Дополнительные параметры питания», который отображается под «Связанными параметрами».

Появится окно параметров электропитания. Нажмите «Изменить настройки плана» вашего активного плана. План питания с черной точкой указывает на ваш активный план.

На следующем экране выберите «Изменить дополнительные параметры питания».

В появившемся диалоговом окне «Электропитание» найдите и разверните параметр «Переключаемая динамическая графика».

Затем разверните раздел "Глобальные настройки", который отображается в разделе "Переключаемая динамическая графика".

После раскрытия глобальных настроек появятся два варианта: «От батареи» и «От сети». Для обоих этих вариантов щелкните раскрывающийся список и выберите «Максимальная производительность».

Иногда при использовании графического приложения на компьютере вы можете увидеть сообщение об ошибке "Сбой загрузки библиотеки с ошибкой 1114: сбой процедуры инициализации библиотеки динамической компоновки (DLL)". Эта проблема обычно возникает из-за настроек принудительного энергосбережения в параметрах электропитания на вашем компьютере. Чтобы решить эту проблему, выполните следующие простые действия на своем компьютере.

Оглавление

Исправление 1. Изменение настроек переключаемой динамической графики

Вы должны максимизировать производительность переключаемых динамических графических настроек на вашем компьютере.

<р>1. Нажмите клавишу Windows+R.

<р>2. Чтобы открыть дополнительные настройки графики, вставьте это в окно «Выполнить». Нажмите Enter.

<р>3. В окне «Электропитание» найдите «Переключаемая динамическая графика». Нажмите, чтобы развернуть его.

<р>5. Затем нажмите «Общие настройки».

<р>4. Затем нажмите раскрывающийся список для параметра «От батареи:» и «Подключено к обоим» и установите для него значение «Максимальная производительность».

<р>6. Сделайте то же самое с настройками «Подключено:».

<р>7. Наконец, нажмите «Применить», а затем «ОК».

Вы больше не увидите это сообщение об ошибке.

Решение 2. Обновите драйвер дисплея

Иногда эта проблема может быть вызвана поврежденными обновлениями драйверов.

<р>1. Вы должны щелкнуть правой кнопкой мыши значок Windows на экране. Затем нажмите «Выполнить».

<р>2. Напишите «devmgmt.msc» и нажмите «ОК».

<р>3. Когда на вашем компьютере откроется Диспетчер устройств, вам нужно развернуть «Видеоадаптеры».

<р>4. Вы должны щелкнуть правой кнопкой мыши на графическом адаптере, а затем нажать «Обновить драйвер».

<р>5. На следующем шаге просто нажмите «Автоматический поиск драйверов».

Подождите несколько минут, пока Windows найдет драйвер и установит его автоматически.

Исправление 3. Настройте приложение на использование высокопроизводительного процессора

Вы можете настроить приложение на использование высокопроизводительной графики при запуске.

<р>1. Найдите «Панель управления NVIDIA».

<р>2. Затем вам нужно нажать на «Панель управления NVIDIA».

<р>3. Когда появится панель управления, нажмите «Управление настройками 3D».

<р>4. После этого нажмите «Настройки программы».

<р>5. Нажмите «Добавить», чтобы добавить программу.

<р>6. Здесь выберите приложение, с которым у вас возникли проблемы.

<р>7. Затем вам нужно переключить «Предпочитаемый графический процессор» на «Высокопроизводительный процессор».

Закройте панель управления NVIDIA в своей системе.

Перезагрузите систему.

Вы больше не увидите это сообщение об ошибке.

Самбит — инженер-механик по квалификации, который любит писать о Windows 10 и решениях самых странных проблем.

Читайте также: