Приветствую, коллеги. После установки Континент TLS 2.0 программа не запускалась и показывала только сообщение «Не найден указанный модуль». В журнале клиента конкретного имени файла не было.
Проблема
Не найден указанный модуль.
Переустановка самого TLS-клиента ничего не меняла. Чтобы не копировать DLL наугад, я посмотрел, какой файл программа пытается загрузить перед появлением ошибки.
Как я нашёл отсутствующий файл
Для проверки использовал Process Monitor от Microsoft Sysinternals:
- Запустил Process Monitor от имени администратора.
- Очистил текущий список событий.
- Добавил фильтр по имени процесса Континент TLS.
- Запустил клиент и дождался сообщения об ошибке.
- Посмотрел последние события с результатом
NAME NOT FOUND.
Клиент искал библиотеку mfc120u.dll. Она входит в распространяемый пакет Microsoft Visual C++ для Visual Studio 2013.
Решение
- Проверил разрядность установленного клиента.
- С официального сайта Microsoft получил поддерживаемый пакет Visual C++ 2013 Redistributable.
- Для 32-разрядного клиента установил пакет x86. На 64-разрядной Windows он тоже может быть необходим, если сама программа 32-разрядная.
- Перезагрузил компьютер и снова запустил Континент TLS.
Важно: я не скачивал отдельный файл mfc120u.dll с каталогов DLL и не копировал его в System32. Нужная библиотека должна устанавливаться штатным пакетом вместе с зависимостями.
Как проверить результат
После установки Visual C++ 2013 клиент открылся без сообщения «Не найден указанный модуль». В Process Monitor больше не было неудачного поиска mfc120u.dll.
Имя отсутствующего файла может отличаться. Поэтому сначала я фиксирую его через журнал или Process Monitor, а уже потом устанавливаю соответствующий официальный пакет.
Получилось или остались вопросы?
Поделитесь результатом, дополните инструкцию своим опытом или задайте вопрос. Я читаю комментарии и обновляю статьи по реальным случаям.