Current time: 27.04.2024, 20:31 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
patcher_x86.dll
» версия 2.8
Author Message
Berserker Offline
Administrators

Posts: 16494
Post: #35

.hpp]ISO C++11 переработанный вариант заголовочного файла патчера
  • Код оформлен в основном по руководству гугла.
  • Модуль помещён в пространство имён x86patcher.
  • Поскольку патчер полностью пропитан 32-битовой арифметикой, ссылаться на типы Студии (__int8 и т.д) смысла нет. Поэтому использованы типы byte, dword, longbool, addr.
  • Табы заменены двумя пробелами.
  • Добавлены обобщённые функции ptr(адрес) и ptr_ofs(адрес, смещение). В качестве адреса первая принимает что угодно из 4-х байт (размер проверяется на этапе компиляции). Вторая принимает любые указатели и возвращает адрес, равный базе + смещение.
  • Макросы кроме CALL_ убраны. Константы оформлены в виде именованных перечислений.
  • EXTENDED стал kBridge, SAFE стал kSafeBridge. Антонимом к Direct ("прямой") является посреднический, а "расширенный" и "безопасный" вообще сбивают с толку.
  • Аргументы, в которых предполагалось использование констант, стали типизированными.
  • Символ указателя привязан к самим переменным. Позволяет избежать ошибок при парном объявлении и в целом распространённая практика. Вместо dword* x используется dword *x.
  • Ряд inline процедур стали обычными. Они объявлены в стиле CDECL с переменным количеством аргументов и используют прямую адресную арифметику для получения указателя на аргументы. Такая вещь определённо не встраивается толком.
  • NULL => nullptr
  • Исправлена весьма странная функция получения указателя самого патчера. Во-первых, функция была встроенной (inline), но содержала среднего размера тело. Во-вторых, любой вызов после первого должен был без особого смысла возвращать NULL. Теперь функция стала обычной. Если есть запомненный указатель на патчер, то он возвращается немедленно. Иначе происходит загрузка DLL и т.д. nullptr возвращается только при ошибке.
  • Код оформлен по границе в 100 символов.
  • char* => const char*
  • Ряд мелких, косметических и оформительных изменений.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
05.01.2013 00:05
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
patcher_x86.dll - baratorch - 11.02.2012, 13:20
RE: patcher_x86.dll - Berserker - 11.02.2012, 15:48
RE: patcher_x86.dll - kostya_76 - 11.02.2012, 22:59
RE: patcher_x86.dll - baratorch - 13.02.2012, 18:42
RE: patcher_x86.dll - kostya_76 - 13.02.2012, 21:42
RE: patcher_x86.dll - Berserker - 13.02.2012, 20:09
RE: patcher_x86.dll - baratorch - 13.02.2012, 21:36
RE: patcher_x86.dll - Berserker - 13.02.2012, 22:04
RE: patcher_x86.dll - baratorch - 13.02.2012, 22:56
RE: patcher_x86.dll - Berserker - 13.02.2012, 23:25
RE: patcher_x86.dll - baratorch - 15.02.2012, 13:53
RE: patcher_x86.dll - baratorch - 17.02.2012, 02:15
RE: patcher_x86.dll - baratorch - 20.02.2012, 08:49
RE: patcher_x86.dll - baratorch - 28.02.2012, 09:38
RE: patcher_x86.dll - Sav - 18.03.2012, 19:04
RE: patcher_x86.dll - Sav - 24.03.2012, 23:36
RE: patcher_x86.dll - gamecreator - 25.03.2012, 01:37
RE: patcher_x86.dll - Sav - 25.03.2012, 09:10
RE: patcher_x86.dll - baratorch - 26.03.2012, 09:14
RE: patcher_x86.dll - baratorch - 04.04.2012, 14:17
RE: patcher_x86.dll - Berserker - 04.04.2012, 19:33
RE: patcher_x86.dll - baratorch - 25.06.2012, 08:23
RE: patcher_x86.dll - baratorch - 27.07.2012, 09:43
RE: patcher_x86.dll - Berserker - 27.07.2012, 14:04
RE: patcher_x86.dll - baratorch - 27.07.2012, 17:30
RE: patcher_x86.dll - Berserker - 27.07.2012, 19:18
RE: patcher_x86.dll - baratorch - 24.09.2012, 17:36
RE: patcher_x86.dll - baratorch - 21.11.2012, 06:37
RE: patcher_x86.dll - Berserker - 21.11.2012, 13:38
RE: patcher_x86.dll - Berserker - 01.01.2013, 22:27
RE: patcher_x86.dll - gamecreator - 01.01.2013, 23:00
RE: patcher_x86.dll - Berserker - 04.01.2013, 21:51
RE: patcher_x86.dll - Sav - 04.01.2013, 22:01
RE: patcher_x86.dll - Berserker - 04.01.2013, 22:43
RE: patcher_x86.dll - Berserker - 05.01.2013 00:05
RE: patcher_x86.dll - hippocamus - 09.01.2013, 12:59
RE: patcher_x86.dll - Berserker - 06.01.2013, 03:10
RE: patcher_x86.dll - Berserker - 09.01.2013, 18:11
RE: patcher_x86.dll - Berserker - 28.06.2013, 14:16
RE: patcher_x86.dll - Berserker - 28.06.2013, 15:21
RE: patcher_x86.dll - Berserker - 02.07.2013, 19:50
RE: patcher_x86.dll - baratorch - 16.08.2013, 09:06
RE: patcher_x86.dll - Sav - 22.08.2013, 21:02
RE: patcher_x86.dll - Berserker - 05.09.2013, 21:11
RE: patcher_x86.dll - Berserker - 25.09.2013, 19:27
RE: patcher_x86.dll - Berserker - 26.09.2013, 18:44
RE: patcher_x86.dll - Berserker - 10.10.2013, 19:43
RE: patcher_x86.dll - baratorch - 24.10.2013, 21:32
RE: patcher_x86.dll - Berserker - 24.10.2013, 22:38
RE: patcher_x86.dll - baratorch - 25.10.2013, 08:11
RE: patcher_x86.dll - Berserker - 25.10.2013, 17:42
RE: patcher_x86.dll - baratorch - 25.10.2013, 20:20
RE: patcher_x86.dll - Berserker - 25.10.2013, 22:04
RE: patcher_x86.dll - baratorch - 26.10.2013, 21:47
RE: patcher_x86.dll - Berserker - 26.10.2013, 22:12
RE: patcher_x86.dll - baratorch - 28.10.2013, 12:46
RE: patcher_x86.dll - baratorch - 03.12.2013, 16:39
RE: patcher_x86.dll - Berserker - 03.12.2013, 19:21
RE: patcher_x86.dll - Arseniy - 31.03.2014, 12:28
RE: patcher_x86.dll - Berserker - 31.03.2014, 21:39
RE: patcher_x86.dll - baratorch - 03.11.2014, 02:19
RE: patcher_x86.dll - baratorch - 03.11.2014, 02:49
RE: patcher_x86.dll - Berserker - 03.11.2014, 20:14
RE: patcher_x86.dll - Berserker - 03.11.2014, 20:21
RE: patcher_x86.dll - baratorch - 03.11.2014, 20:22
RE: patcher_x86.dll - Berserker - 03.11.2014, 22:18
RE: patcher_x86.dll - baratorch - 07.11.2014, 16:12
RE: patcher_x86.dll - baratorch - 21.08.2015, 11:25
RE: patcher_x86.dll - Bes - 10.09.2015, 20:04
RE: patcher_x86.dll - gamecreator - 11.09.2015, 00:57

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group