(21.09.2022 05:06)daemon_n Wrote: myoffice91, badluck только windows 7+
Насчёт остального - вероятно, не хватает библиотек msvsrxx.dll
badluck.dll, Battle_AI.dll, emerald_v202a.dll, InstantAnim.dll - импорт библиотека KERNEL32.DLL, MSVCR90.DLL.
Однако, папка "Heroes III ERA" уже есть наличие файлы "msvcr90.dll", "msvcr100.dll", "msvcr110.dll", "msvcr120.dll".
В Windows 7 x64, посмотрел отладка, увидел игра ЭРА3 используется C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\msvcr90.dll , главный вопрос почему не выбрал библиотека из "Heroes III ERA".
В "msvcr90.dll" версия 9.00.30729.9247 из "Heroes III ERA"
9.00.30729.6161 из "C:\Windows\winsxs\...."
Попробовал файл msvcr90.dll копировал "C:\Windows\winsxs\...." из компьютер Windows 7 в нетбуке Windows XP, но не помогло.
(21.09.2022 05:10)XEPOMAHT Wrote: (21.09.2022 04:56)myoffice91 Wrote: Если 4 удалил DLL, то игра заработал. А если Windows 7 x64, то работает мод ERA+ с 4 DLL.
Это давно известный баг самой ЭРЫ в загрузчике плагинов, который Берсеркер не хочет/не может исправить, т.к. проявляется он только на Windows 5.ХХ. Лечится созданием пустой папки EraPlugins в директории с игрой.
Не помогло!
(21.09.2022 05:24)daemon_n Wrote: XEPOMAHT, не соглашусь. На ХР не работала никогда.
Это обсуждалось несколько раз
1.Если "msvcr90.dll", то причем тут XP, только заставить установить "vcredist_x86.exe", а не корневую папку "Heroes 3 ERA" - но я не проверил, не хотел.
2.Это обсуждение
http://wforum.heroes35.net/showthread.ph...#pid103141 ?
(21.09.2022 05:10)XEPOMAHT Wrote: (21.09.2022 04:56)myoffice91 Wrote: Посмотрел Windows XP отладка с включил "Точка входа DLL", дальше-дальше, но не дает посмотреть отладка "Badluck.era". Значит программирование не правильно написано в коде DLL.
Решил посмотрел диззассемблер в"badluck.era", заметил вообще зачем 5 нужен вызов
GetSystemTImeAsFileTime
GetCurrentProcessID
GetCurrentThreadID
GetTIckCount
QueryPerformanceCounter
В главная процедура отсутствует защита от многораз вызов MAIN.
Эти феаноровские плагины не могут быть пересобраны с исправлением ошибок компиляции в них, т.к. сделать это бесплатно просто нечем (да и в СИ я ничего не понимаю и не знаю как на нём правильно написать плагин).
Так же все феаноровские плагины тащат за собой ненужные си-шные дополнительные библиотеки, которые должны быть установлены в виндовозе (благо они довольно старые, поэтому проблем с ними на Windows XP нету - находятся и устанавливаются без проблем).
После завершения работ над переписыванием кривостей воговского кода в рамках Тифона, функционал феаноровских плагинов так же будет импортирован в Тифон, а сами плагины будут убраны из ERA+.
1.Очевидное, "c:\Users\Sergey\Documents\Visual Studio 2008\Projects\Battle_AI\Release\Battle_AI.pdb" - тоже свойство msvcrt90.dll поля "Название продукта" Visual Studio 2008.
Однажды "MLS (Monster Model Script) Editor 1.1b" пробовал переписывал C# на C++, результат там запуск экзешник из С++, странный поведение проверка строка и сгенерирование вывод текст - не похож как C#. Немного поменял код и условия, теперь точность поведение как C#.
2.Помню, прошлый год, пробовал скачал открытий исходный код "LuaJIT" и компиляция, узнал зависимость слишком много библиотеки имена файлы "api-ms-win-core-" например "api-ms-win-core-string-l1-1-0.dll" это вообще не правильно и не нужные хлами, был Visual Studio 2017, решил выбрал 2012, компиляция С++ теперь один зависимость "MSVCRT.DLL" это все верно.
3.После завершение...., а потом лучше сначала побольше реализовать новведение и новые фичи, а потом поглощение феаноровские плагины. Иначе другие платформа развивается тоже так реализовать фичи и новые... =).
---
Решил удалить ресурсы манифет изнутри "InstantAnim.dll"
Code:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
в Windows 7 запуск ЭРА, появился ошибка окно "Microsoft Visual C++ Runtime Library" xD!
Почему есть библиотека "msvcr90.dll"" в "Heroes 3 ERA", "InstantAnim.dll" как будто отказ принимать.
Решил в отладка в "msvcr90.dll", аналогично всплывается окно "Microsoft Visual C++ Runtime Library" 0_О. Решил поменял условия, модифицировал библиотека. Затем модифицировал 4 библиотека DLL удалить из ресурсы и секция ".rsrc". Игра заработал - ура!. Вот и всё! Не надо выдумываешь Windows XP, что не работает.
Вот скачать файл
https://disk.yandex.ru/d/X3CP4DBZRuutAQ (EraPlugins 4 DLL FIX+ MSVCR90 FIX +XP.rar)
Кто-то автор ЭРА и Сборка, возьми модификация "msvcr90.dll" для себя.