SDL Image IMG Load терпит неудачу на png с: "неудачная загрузка libpng16-16.файл DLL:"

всякий раз, когда я пытаюсь загрузить PNG с помощью функции Img_load SDL_Image, он дает ошибку Failed loading libpng16-16.dll:. У меня есть все правильные dll в правильном пути, и я могу использовать другие части SDL_Image, но по какой-то причине он не может загрузить dll libpng. Как я могу это исправить? Любая помощь приветствуется.

5 ответов


см. мою статью "SDL2: загрузка изображений с помощью SDL_image":

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

Излишне говорить, что то, что я написал об изображении здесь, также относится к DLL.


получается, что libpng16-16.dll зависит от zlib1.dll для MinGW-w64 (32-бит). Попробуйте включить zlib в свои dependnecies--включите DLL в папку, где выполняется исполняемый файл.


VS не ищет библиотеки DLL нигде, кроме директории выполнения, поэтому вам, вероятно, нужно скопировать эту dll в каталог Debug/ на пути вашего решения.


этой ссылке показать вам, как настроить библиотеку SDL / libpng16-16.dll будет доступна для доступа компилятором.exe (последний шаг прямо перед образцом кода)

страницы -> волоконно программа строит событие-> событие после построения
в моем случае у меня
копировать "C:\Users\MehdiB\Desktop\C программа\библиотека\SDL2-devel-2.0.4-VC\SDL2-2.0.4\lib\x86\SDL2.dll "" $(OutDir)SDL2.библиотека DLL";
копировать "C:\Users\MehdiB\Desktop\C Программа\библиотека\SDL2_image-devel-2.0.1-VC\SDL2_image-2.0.1\lib\x86\SDL2_image.dll "" $(OutDir)SDL2_image.библиотека DLL";
копировать "C:\Users\MehdiB\Desktop\C программа\библиотека\dll\libjpeg-9.dll файлы" "$(OutDir)libjpeg-9.DLL-файл"

здесь где вы можете получить эту dll


Я только что заменил zlib1.dll в system32 и SysWOW64 с одним загруженным из https://github.com/OctaForge/OF-Windows/blob/master/bin_win32/zlib1.dll .и работал красиво