Заставка зависит от файлов C - PullRequest
0 голосов
/ 27 ноября 2011

Я сделал заставку на C, которая использует SDL. Я помещаю его в System32 вместе с папкой картинок, которую он использует, и SDL.dll, но я получаю сообщение об ошибке при попытке запустить его. Не удается найти SDL.dll! Он работает в любой другой папке с SDL.dll в нем. Почему не System32? Я даже не пытаюсь запустить его как заставку. Когда я щелкаю правой кнопкой мыши и нажимаю «Тест», он говорит, что не может найти SDL.dll. Что случилось? Что мне делать?

1 Ответ

1 голос
/ 27 ноября 2011

Положите SDL.dll где-нибудь на PATH.Windows должна быть в состоянии найти его, и она не знает, как искать в созданной вами папке.

Чтобы узнать, как Windows выглядит для DLL, прочитав документацию для LoadLibrary :

Первый найденный каталог - это каталог, содержащий файл изображения, используемый для создания вызывающего процесса (для получения дополнительной информации см. Функцию CreateProcess).Это позволяет находить файлы частной динамической библиотеки (DLL), связанные с процессом, без добавления установленного каталога процесса в переменную среды PATH.Если указан относительный путь, весь относительный путь добавляется к каждому токену в списке путей поиска DLL.Чтобы загрузить модуль из относительного пути без поиска другого пути, используйте GetFullPathName, чтобы получить не относительный путь, и вызовите LoadLibrary с не относительным путем.Для получения дополнительной информации о порядке поиска в DLL см. Порядок поиска в библиотеке динамических ссылок .

...