[C3] Альтернативное решение ошибки переключения окна

jojo_meme

Gremlin
Messages
1
Reaction score
0
Я из тех людей которые все еще сидят на Windows 7.

Поиграть в игру нормально не получалось, т.к. почти каждый раз когда нужно было переключить окно с игры на другое - происходила критическая ошибка.

Пользуюсь Windows 7 x64 язык русский, не сборка, оригинальный образ скачанный с сайта Microsoft (MSDN)
Обновления установлены по январь 2020г.
Твикеров и твиков в системе нет, компоненты не вырезал.

Странный способ с TeamViewer 8 мне не помог.
Способ с установкой Aurum Switcher меня категорически не устраивает (даже не проверял) - мне подобного рода софт не нужен (я переключаю язык вручную)

Решил наудачу попробовать изучить в чем проблема. Буквально минут 5. И вроде получилось.
Игра больше не вылетает и других проблем не прибавилось. Поэтому способ считаю более менее стабильным.

Играю в оконном режиме

Требования:
ОС: Windows Vista и выше (любой разрядности)
На компьютере должен быть установлен "Распространяемый компонент Microsoft Visual C++ 2015 (32 bit)"
Программа не требует прав администратора

Инструкция:
Скачать файл во вложении; распаковать куда нибудь; запустить внутри файл с названием L2_FIX (расширение .cmd) до игры или во время игры; готово
Запускать L2_FIX нужно для каждого запуска игры!

Программа использует запись в память другого процесса, поэтому антивирусы могут отнестись с недоверием (правильно делают)

Внутри есть проверки: случайный участок памяти не будет затронут (если например nwindow.dll изменится в будущем)

Как работает:
Программа заменяет байты в памяти процесса L2.exe - в участках nwindow.dll:$14425 и nwindow.dll:$1443F отменяется вызов функций ImmSetConversionStatus и ImmGetConversionStatus. Как я понял, эти функции как то связаны с текстом (азия).
Ошибка возникает в следствии переполнения стека основного потока (тут я копать не стал).
Исследуя на каких вызовах стек закончился, я пришел к этим функциям и просто их отключил.

ATwmd4X.png


С таким решением играл несколько часов, проблем не было, но гарантировать что способ правильный и не сломает чего другого я конечно не могу!

-------------------------------------
ОБНОВЛЕНИЕ 2021/09:
Неправильно собрал программу - в результате ее нельзя было запустить без наличия на ПК Microsoft Visual Studio 2019.
Теперь она запускается как задумано - требуется только наличие Vista и выше + распространяемый компонент Microsoft Visual C++ 2015 (32 bit)


(хотя на данном проекте уже нет C3, данная программа может пригодиться на других серверах)
--------------------------------------


View attachment 585
 

Attachments

Спасибо большое! Если это действительно поможет, добавлю в патч
 
Back
Top