Запуск DLL не вызывает абсолютно никаких вопросов и проблем, если вы — программист со стажем и решаете такие вопросы каждый день, сидя у рабочего компьютера и создавая очередной шедевр компьютерных игр. Вы даже можете быть удивлены, что такая никудышная тема стала предметом обсуждения целой статьи. Однако, если вы не программист, не учились 6 лет на факультете прикладной математики, не являетесь автором крутых компьютерных игр, то запуск DLL может быть для вас нетривиальной задачей и эта нерешенная тема может запросто лишить вас возможности поиграть в любимую компьютерную игру.
Именно по этой причине я предлагаю разобрать внимательно запуск DLL в системе Windows разных версий, чтобы не возникла ошибка DLL не пришлось целую вечность ломать голову над тем, как от нее избавиться.
Ошибка DLL при запуске игр
Ошибка DLL при запуске игр — это наиболее распространенное и наиболее досадное явление, имеющее место, когда запуск DLL не состоялся и наша система рапортует об ошибке.Но давайте рассмотрим непосредственно сам процесс вызова DLL. Программист, при проектировании компьютерной игры, может обращаться к сторонней DLL всего лишь ради малюсенькой функции, которую он по каким-либо соображениям не желает реализовывать самостоятельно, а предпочитает воспользоваться уже готовым вариантом. Например на скриншоте ниже показан исходный код одной игры, где идет вызов внешней DLL библиотеки.
В случае этого куска кода можно констатировать, что запуск DLL прошел удачно, но так происходит далеко не всегда, ведь обычно вызов необходимых библиотек происходит именно во время старта, когда игра загружает все необходимые для работы компоненты в оперативную память компьютера. И вот здесь запуску DLL могут помешать самые различные факторы.
Бывают случаи, что компьютерная игра хочет вызвать функцию, расположенную в DLL библиотеке стороннего производителя. Все происходило замечательно, уже много времени, но вдруг запуска не произошло и на экране стало появляться надоедливое окно с извещением об ошибке. Стали повторять запуск DLL и исследовать ошибку. Оказалось, что разработчик библиотеки просто изъял эту функцию из исходного кода DLL-ки и не потрудился включить этот пункт в состав документации. Пришлось программистам игры срочно выпускать патч и обновлять исходники своего продукта, чтобы геймеры смогли и дальше нормально играть. Или рассмотрим еще вот такой пример.
Запуск невозможен отсутствует msvcp110.dll
Здесь мы видим, что игра выдает сообщение об ошибке DLL, которая связана с тем, что она не может найти по указанному пути необходимую ей msvcp110.dll. Как исправить ошибки DLL? Да очень просто! Для начала стоит проверить, а есть ли действительно в системе нужная нам DLL-ка. Если таковая имеется, то значит скорее всего она повреждена и игра не может произвести запуск DLL. В этом случае будет целесообразно скачать DLL и зарегистрировать ее в системе. Как это делать мы уже писали, но давайте осветим этот момент еще раз. Нужно в командной строке выполнить команду regsvr32, которая как раз и занимается регистрацией или разрегистрацией библиотек DLL в системе.
После того, как процесс регистрации будет закончен, игра должна автоматически произвести запуск DLL во время своей загрузки и, если файл удовлетворяет всем требованиям игры (версия, разрядность), вы сможете насладиться игровым процессом. Однако такой способ запуска DLL мы не можем назвать оптимальным т.к. врядли вам удастся найти именно ту версию именно ту разрядность библиотеки, которая вам необходимо. Гораздо надежнее скачать свежую версию того программного обеспечения или той игры, которая включает в себя этот DLL файл. Переустановить программный продукт целиком вместе с этой библиотекой. Перезакрузиться и провести запуск DLL повторно.