Показать полную графическую версию : Запуск игры с dll
Добрый день.
Есть игра Age of Mythology от Microsoft.
Есть компьютер, на котором нет админских прав, и быть не может.
Игра для запуска требует библиотеку msxml4.dll
Проблема в том, что .exe не воспринимает эту dll-ку, если она лежит рядом. Проверял на другом компе - требуется строго, чтоб этот файлик лежал в C:\Windows\SysWOW64 (C:\Windows\System32).
Вопрос - как заставить ексешник искать дллку в своей же папке, а не пытаться проверять в папке с виндой?
Quaker_75
01-05-2016, 14:48
На компьютере игра уже установлена, как я понял?
.exe не воспринимает » - какой .exe?
не воспринимает эту dll-ку » - Если установка шла из-под админа, указанный файл должен находиться именно там, где ему прописано....
Проверял на другом компе » - Ну так сделайте тоже самое на искомой машине....
как заставить ексешник искать дллку в своей же папке » - К чему все это??? Определенные dll библиотеки ОБЯЗАНЫ находиться в системных папках для их корректной работы....
- какой .exe? »
исполняемый. который игру запускает.
- Если установка шла из-под админа, указанный файл должен находиться именно там, где ему прописано »
после установки игры отдельно запускается установщик MSXML 4.0 (https://www.microsoft.com/en-US/download/details.aspx?id=19662)
Без админ.прав запуск установщика невозможен. Поэтому я нашел файл, который отвечает за возможнсть запуска игры, и положил его рядом с .exe
Раньше всегда прокатывало - эта же игра (ексешник) ищет требуемую dll не рядом с собой, а строго в папке system32
То есть, рядом с ексешником валяется куча других библиотек - binkw32.dll, msvcp60.dll и т.п. - для них достаточно быть НЕ в системной папке с виндой. А вот msxml4.dll исполняемый файл не хочет видеть рядом с собой. Может, можно ковырнуть в нём hex-редактором что-то ? Пару бит каких-нибудь изменить, чтоб поменять путь для поиска.
Ну так сделайте тоже самое на искомой машине »
невозможно. на ней нет админских прав, и никто их не даст.
Раньше всегда прокатывало - эта же игра (ексешник) ищет требуемую dll не рядом с собой, а строго в папке system32 »
Ему явно нужна регистрация этой dll (по regsvr32.exe). Попробуйте проделать следующее:
сделать слепок реестра без msxml4;
установить MSXML 4.0;
сделать ещё один слепок реестра;
сравнить слепки;
полученную разницу переделать с HKLM на HKCU, откорректировать пути с %SystemRoot%\System32 и т.п. на потребный, затем сделать соответствующий файл реестра;
удалить MSXML 4.0;
установить игру;
поместить файлы, извлечённые из инсталляции MSXML 4.0 в потребное место;
импортировать созданный выше файл реестра.
Затем проверить работоспособность. Если заработает — значит Вам повезло, можете попытаться проделать сие и там, где нет административных прав.
Iska, большое Вам спасибо. По вашей наводке разобрался с реестером. В нем действительно прописывается путь до длл-ки.
Создал пользователя без админских прав - с заменой на HKCU работает!
Я просто оставлю это здесь...
осталось только проверить, сработают ли эти пути реестера для win32. делал-то я это все на своей 64-битке (SOFTWARE\Classes\Wow6432Node\CLSID\{7c6e29bc-8b8b-4c3d-859e-af6cd158be0f})
осталось только проверить, сработают ли эти пути реестера для win32. делал-то я это все на своей 64-битке (SOFTWARE\Classes\Wow6432Node\CLSID\{7c6e29bc-8b8b-4c3d-859e-af6cd158be0f}) »
Сработают. Естественно, для x86 нужно использовать пути в реестре без редиректа.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.