Не хватает библиотек dll visual studio

Обновлено: 08.07.2024

В Visual Studio 2010 под VC++ Directories > Executable Directories я указал путь к glew32d.dll . Однако, когда я запускаю исполняемый файл, он все еще жалуется.

С другой стороны, если я копирую DLL в локальную папку и запускаю исполняемый файл, то он не жалуется.

Указание пути к DLL файлу в настройках вашего проекта не гарантирует, что ваше приложение будет найти DLL во время выполнения. Вы только сказали Visual Studio, как найти нужные ему файлы. У этого ничего нет. делать то, как программа находит то, что ей нужно, после ее создания.

Размещение DLL файла в той же папке, что и исполняемый файл, безусловно, является самым простым решением. Это путь поиска по умолчанию для зависимостей, поэтому вам не нужно ничего делать, если вы идете по этому маршруту.
Чтобы избежать необходимости делать это вручную каждый раз, вы можете создать событие Post-Build для своего проекта, чтобы автоматически скопирует DLL в соответствующий каталог после завершения сборки.

В качестве альтернативы вы можете развернуть DLL в Windows бок о бок кеш и добавить манифест в ваше приложение, которое указывает местоположение.

У меня возникла одна и та же проблема с той же самой библиотекой lib, которая находила решение здесь SO:

Поиск в MSDN для "Как установить переменные среды для проектов". (Это проект > Свойствa > Свойства конфигурации > Отладка Свойства "Окружающая среда" и "Слияние окружающей среды" для тех, кто находится в спешка.)

Синтаксис NAME = VALUE и макросы могут использоваться (например, $(OutDir)).

Например, чтобы добавить C:\Windows\Temp к PATH:

Аналогично, добавьте $(TargetDir)\DLLS в PATH:

Чтобы добавить к Олегу ответ:

* На самом деле я не знаю, использует ли макрос $(ExecutablePath) параметр "Исполняемые каталоги проекта" или глобальные страницы "Выполняемые каталоги свойств". Поскольку у меня есть все мои библиотеки, которые я часто использую, настроенные через страницы свойств, эти каталоги отображаются как значения по умолчанию для любых новых проектов, которые я создаю.

Библиотека DLL (библиотека динамической компоновки) — это библиотека, содержащая код и данные, которые могут использоваться несколькими приложениями. Visual Studio можно использовать для создания, сборки, настройки и отладки библиотек DLL.

Создание библиотеки DLL

Создавать библиотеки DLL можно с помощью следующих шаблонов проектов Visual Studio.

Дополнительные сведения см. в разделе Методы отладки MFC.

Отладка библиотеки WCF аналогична отладке библиотеки классов. Дополнительные сведения см. в статье Элементы управления Windows Forms.

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

Конфигурация отладки библиотеки DLL

При создании приложения на основе шаблона проекта Visual Studio Visual Studio автоматически создает требуемые параметры для конфигурации сборки отладки и выпуска. При необходимости эти параметры можно изменить. Дополнительные сведения см. в следующих статьях:

Установка DebuggableAttribute C++

Чтобы отладчик мог присоединиться к библиотеке DLL C++, код C++ должен добавлять DebuggableAttribute .

Установка DebuggableAttribute

В обозревателе решений выберите проект DLL C++ и щелкните значок Свойства либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.

В области Свойства в разделе Компоновщик > Отладка выберите Да (/ASSEMBLYDEBUG) для свойства Отлаживаемая сборка.

Дополнительные сведения см. в статье /ASSEMBLYDEBUG.

Задание расположений файлов DLL C/C++

Для отладки внешней библиотеки DLL вызывающий проект должен находить библиотеку DLL, ее PDB-файл и любые другие файлы, необходимые библиотеке DLL. Вы можете создать пользовательскую задачу сборки, чтобы скопировать эти файлы в выходную папку <project folder>\Debug, или скопировать файлы вручную.

Для проектов C/C++ можно задать расположения файлов заголовков и LIBD-файла на страницах свойств проекта, а не копировать их в выходную папку.

Задание расположений файла заголовка C/C и LIB-файла

В обозревателе решений выберите проект DLL C/C++ и щелкните значок Свойства либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.

В верхней части области Свойства в разделе Конфигурация выберите Все конфигурации.

В разделе C/C++ > Общие > Дополнительные включаемые каталоги укажите папку с файлами заголовков.

В разделе Компоновщик > Общие > Дополнительные каталоги библиотек укажите папку с LIB-файлами.

В разделе Компоновщик > Ввод > Дополнительные зависимости укажите полный путь и имя файла для LIB-файлов.

Дополнительные сведения о параметрах проекта C++ см. в статье Справочник C++ по страницам свойств проекта Windows.

Сборка отладочной версии

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

Вы можете создать пользовательскую задачу сборки, чтобы скопировать эти файлы DLL в выходную папку <calling project folder>\Debug, или скопировать файлы вручную.

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

Отладка библиотека DLL

Библиотеку DLL нельзя запускать напрямую. Ее должно вызывать приложение, обычно это EXE-файл. Дополнительные сведения см. в статье Проекты Visual Studio — C++.

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

Дополнительные сведения см. в статье Первое знакомство с отладчиком.

Запуск отладки из вызывающего приложения

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

  • Приложение из проекта Visual Studio в том же или другом решении из библиотеки DLL.
  • Существующее приложение, которое уже развернуто и работает на тестовом или рабочем компьютере.
  • Программа расположена в Интернете и доступна по URL–адресу.
  • Веб-приложение с веб-страницей, которая внедряет библиотеку DLL.

Выполнить отладку библиотеки DLL из вызывающего приложения можно следующими способами.

Откройте проект для вызывающего приложения и начните отладку, выбрав Отладка > Начать отладку или нажав клавишу F5.

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

Перед запуском отладки этого вызывающего приложения нужно установить точку останова в DLL. См. статью Использование точек останова. При попадании в точку останова DLL можно пошагово проходить по коду, наблюдая действия в каждой строке. Дополнительные сведения см. в статье Навигация по коду с помощью отладчика.

Во время отладки в окне Модули можно проверить библиотеки DLL и EXE-файлы, загружаемые приложением. Чтобы открыть окно Модули, во время отладки выберите Отладка > Окна > Модули. Дополнительные сведения см. в разделе Практическое руководство. использовать окно модулей.

Использование окна "Интерпретация"

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

Окно Интерпретация можно использовать во время разработки с большинством типов проектов. Оно не поддерживается для SQL, веб-проектов или скриптов.

Например, чтобы протестировать метод с именем Test в классе Class1 , выполните следующие действия.

Откройте проект DLL, откройте окно Интерпретация, последовательно выбрав пункты Отладка > Окна > Интерпретация или нажав сочетание клавиш CTRL+ALT+I.

Предположим, что Test принимает один параметр int , вычислим Test с помощью окна Интерпретация :

Результат будет выведен в окне Интерпретация.

Можно продолжить отладку Test , установив в нем точку останова, а затем снова вычислив эту функцию.

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

Отладка в смешанном режиме

Вы можете написать вызывающее приложение для библиотеки DLL в управляемом или машинном коде. Если собственное приложение вызывает управляемую библиотеку DLL и вы хотите выполнить отладку этих двух объектов, можно включить управляемые и машинные отладчики в свойствах проекта. Точный способ выполнения этой операции зависит от того, откуда будет начата отладка: из проекта DLL или из проекта вызывающего приложения. Дополнительные сведения см. в разделе Практическое руководство. Отладка в смешанном режиме.

Можно выполнить отладку собственной библиотеки DLL из управляемого вызывающего проекта. Дополнительные сведения см. в статье об отладке управляемого и машинного кода.

В качестве примера мы рассмотрим подключение библиотеки SDL к нашему проекту в Visual Studio 2017 (работать будет и с более новыми версиями Visual Studio).

Шаг №1: Создаем папку для хранения библиотеки

Создаем папку Libs на диске C ( C:\Libs ).

Шаг №2: Скачиваем и устанавливаем библиотеку



Шаг №3: Указываем путь к заголовочным файлам библиотеки

Открываем свой любой проект в Visual Studio или создаем новый, переходим в "Обозреватель решений" > кликаем правой кнопкой мыши (ПКМ) по названию нашего проекта > "Свойства" :


В "Свойства конфигурации" ищем вкладку "С/С++" > "Общие" . Затем выбираем пункт "Дополнительные каталоги включаемых файлов" > нажимаем на стрелочку в конце > "Изменить" :


В появившемся окне кликаем на иконку с изображением папки, а затем на появившееся троеточие:


Заголовочные файлы находятся в папке include внутри нашей библиотеки, поэтому переходим в нее ( C:\Libs\SDL2-2.0.9\include ) и нажимаем "Выбор папки" , а затем "ОК" :



Шаг №4: Указываем путь к файлам с реализацией библиотеки

Переходим на вкладку "Компоновщик" > "Общие" . Ищем пункт "Дополнительные каталоги библиотек" > нажимаем на стрелочку в конце > "Изменить" :


Опять же, нажимаем на иконку с папкой, а затем на появившееся троеточие. Нам нужно указать следующий путь: C:\Libs\SDL2-2.0.9\lib\x86 . Будьте внимательны, в папке lib находятся две папки: x64 и x86 . Даже если у вас Windows разрядности x64, указывать нужно папку x86 . Затем "Выбор папки" и "ОК" :


После этого переходим в "Компоновщик" > "Ввод" . Затем "Дополнительные зависимости" > нажимаем на стрелочку в конце > "Изменить" :


В появившемся текстовом блоке вставляем:


Затем переходим в "Компоновщик" > "Система" . После этого "Подсистема" > нажимаем на стрелочку вниз > выбираем "Консоль (/SUBSYSTEM:CONSOLE)" > "Применить" > "ОК" :



Шаг №5: Копируем dll-ку в папку с проектом

Переходим в папку x86 ( C:\Libs\SDL2-2.0.9\lib\x86 ), копируем SDL2.dll и вставляем в папку с вашим проектом в Visual Studio. Чтобы просмотреть папку вашего проекта в Visual Studio, нажмите ПКМ по названию вашего проекта > "Открыть содержащую папку" :


Затем вставляем скопированный файл (SDL2.dll) в папку с проектом (где находится рабочий файл .cpp):


Шаг №6: Тестируем

Теперь, чтобы проверить, всё ли верно мы сделали — копируем и запускаем следующий код:

Часть 1 , Что такое DLL?

DLL, что означает Dynamic Link Library, представляет собой файл, в котором хранятся инструкции, которые могут вызывать программы для выполнения определенных задач, включая встроенные и сторонние программы. На самом деле, несколько программ могут совместно использовать возможности в одном файле DLL и даже делать это одновременно. В отличие от клиентского файла программы, который заканчивается расширением EXE, файлы DLL не могут быть открыты или прочитаны напрямую. И они хранят молчание на вашем жестком диске, пока не будут вызваны определенным кодом, который работает. Другими словами, ошибка DLL может привести к повреждению программ и некоторых функций в Windows.

Большинство файлов DLL заканчиваются расширением .DLL; другие могут использовать .EXE, .OCX, .CPL или .DRV.

DDL файл

Часть 2 , Распространенные ошибки DLL

1. D3dx9_43.dll (D3dx9_43.dll не найден). Ошибки D3dx9_43.dll вызваны проблемами с Microsoft DirectX.

3. Xinput1_3.dll (Xinput1_3.dll отсутствует). Эта ошибка связана с Microsoft DirectX, особенно с играми и продвинутыми графическими программами.

4. Hal.dll (отсутствует или поврежден Hal.dll). Эта ошибка обычно появляется вскоре после первого запуска компьютера.

5. Kernel32.dll (ошибка неверной страницы в модуле Kernel32.dll). Kernel32.dll способен защитить пространство памяти Windows и не дать другим программам использовать то же пространство.

6. Ntdll.dll (Неизвестная трудная ошибка Ntdll.dll). Ошибка ntdll DLL обычно вызвана повреждением файла ntdll, драйверами оборудования и другими проблемами.

7. Ceber атакует ваш компьютер. (Использование Превосходный.)

Ошибка

Часть 3 , Исправлена ​​ошибка отсутствия файлов DLL

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

Шаг 1 : Перейдите в меню «Пуск» и запустите «Командную строку от имени администратора».

Шаг 2 : Введите «sfc / scannow» и нажмите клавишу «Enter», чтобы запустить процесс сканирования. После этого система должна автоматически восстановить отсутствующие файлы DLL.

Sfc

Другой метод - DISM, инструмент для управления образами и обслуживанием.

Шаг 1 : Также запустите CMD и выполните команду «DISM / Online / Cleanup-Image / RestoreHealth».

Шаг 2 : 10 минут спустя, когда вы обнаружите, что процесс завершен, вы можете перезагрузить компьютер. Ошибка DLL должна исчезнуть.

Dism

Метод 3: переустановите программы

Как упоминалось ранее, файлы DLL связаны с программами. Если ошибка появляется при открытии определенной программы, например, Internet Explorer или стороннего приложения, обновите программу или переустановите ее. Обновление и установка могут содержать отсутствующий файл DLL.

Это решение также поможет вам восстановить потерянный файли другие системные файлы легко. Конечно, вы потеряете DLL-файлы на диске C.

Метод 4: скачать определенный файл DLL онлайн

Если вы попробовали описанные выше методы и проблема не устранена, вы можете загрузить определенный файл DLL онлайн.

Метод 5: исправление отсутствующих файлов DLL путем сброса ПК с Windows

Шаг 1 : Откройте меню «Пуск», перейдите в «Настройки»> «Обновление и безопасность» и выберите «Восстановление» на левой панели.

ПК для отдыха

Шаг 1 : При возникновении ошибки DLL перезагрузите компьютер и продолжайте нажимать F8 до появления логотипа Windows. Затем выберите «Безопасный режим с командной строкой» в меню загрузки.

Шаг 2 : Выполните команду ниже, когда появится окно командной строки: «% systemroot% \ system32 \ restore \ rstrui.exe».

Шаг 3 : Затем следуйте инструкциям на экране, чтобы восстановить ваш компьютер и отсутствующие файлы DLL.

Часть 4 , Как восстановить отсутствующие файлы DLL

Если вы просто хотите быстро восстановить отсутствующие DLL-файлы, рекомендуем вам попробовать Apeaksoft Восстановление данных, Его основные функции:

1. Восстановите DLL-файлы за один клик, чтобы даже новички могли понять это за несколько секунд.

2. Восстановление отсутствующих DLL-файлов в различных ситуациях, например, файл был случайно удален, поврежден, поврежден, подвержен воздействию вирусов и т. Д.

3. Поддержка различных типов данных и форматов, включая DLL, EXE, OCX, CPL, DRV и т. Д.

4. Восстановите удаленные файлы DLL в оригинальном формате и качестве.

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

6. Помимо файлов DLL, вы также можете восстановить музыку, видео, фотографии, документы и другие данные с вашего компьютера.

7. Кроме того, восстановление данных доступно для Windows 10 / 8.1 / 8 / Vista / XP.

Короче говоря, это лучший вариант для быстрого восстановления отсутствующих файлов DLL и избавления от проблем, связанных с файлами DLL.

Как восстановить недостающие файлы DLL в один клик

Шаг 1. Сканирование всей системы для поиска файлов DLL

Перейдите в область типа данных, выберите опцию «Другие». Затем перейдите в область расположения и выберите, где изначально находился файл DLL, например, «Локальный диск». Восстановление данных будет работать, как только вы нажмете кнопку «Сканировать».

Scan

Шаг 2. Предварительный просмотр отсутствующих файлов DLL перед восстановлением

Когда появится окно результатов сканирования, нажмите «Другие» с левой стороны и откройте папки с названием «DLL» на правой панели для предварительного просмотра удаленных файлов DLL. Кроме того, функция «Фильтр» на верхней ленте позволяет быстро находить файл по ключевым словам. Если вы не можете найти соответствующий файл DLL, нажмите кнопку «Глубокое сканирование», чтобы выполнить глубокое сканирование системы.

предварительный просмотр

Шаг 3. Восстановите отсутствующий файл DLL в один клик

Наконец, выберите потерянный файл DLL в окне результатов и нажмите кнопку «Восстановить», чтобы восстановить его до исходного состояния.

Recover

Заключение

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