 |
|

24.08.2021, 19:01
|
|
Познающий
Регистрация: 06.09.2018
Сообщений: 32
С нами:
4045092
Репутация:
23
|
|
Сообщение от #Northn
msbuild запрещает использование __thiscall в любом случае, поэтому приходится костылить через __fastcall
он не запрещает его использовать при вызове других не статических методов класса, но не позволяет определять не статические методы класса, который не был объявлен
|
|
|

24.08.2021, 21:16
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от .deserve
Не советую использовать __thiscall, потому что поддержка этого кейворда есть только начиная с MSVC 2005. При этом компилируя через GCC, clang ты вообще потеряешь доступ к регистру хранящему this ptr (ecx) ибо он будет на стеке валяться. Для почти полной совместимости желательно использовать соглашение __fastcall, ибо оно абсолютно точно реализовано идентично в GCC, g++, clang, ICC и этого набора уже достаточно. А еще при создании функции хука ты можешь попасться на IDB на некоторых имплементациях MSVC, в связи с тем что у тебя нету дефайна класса, что лучше не допускать. (но к удивлению в 14.2 всё нормально)
Для Win32 GCC и Clang используют соглашение __thiscall с this в ECX. Для POSIX у них везде используется только __cdecl (даже для классов)
|
|
|

18.09.2021, 10:51
|
|
Новичок
Регистрация: 17.07.2015
Сообщений: 2
С нами:
5697686
Репутация:
0
|
|
Сообщение от AdCKuY_DpO4uLa
В самое начало, перед всеми инклюдами
C++:
Код:
#define _CRT_SECURE_NO_WARNINGS
Один из вариантов того, как можно подменить определенное сообщение
C++:
Код:
void
__fastcall
HOOKED_ChatAddEntry
(
void
*
_this
,
void
*
pUnk
,
int
nType
,
char
*
szText
,
char
*
szPrefix
,
DWORD textColor
,
DWORD prefixColor
)
{
if
(
nType
==
8
&&
strstr
(
szText
,
"{FFFFFF}SA-MP {B9C9BF}0.3.7 {FFFFFF}Started"
)
)
sprintf
(
szText
,
"САМП ЗАПУЩЕН ЪУЪЪУЪУЪУЪУЪ"
)
;
return
origChatAddEntry
(
_this
,
nType
,
szText
,
szPrefix
,
textColor
,
prefixColor
)
;
}
Адрес 0x0064010 работает только с версией 0.3.7? Если да, то подскажите по какому адресу он будет перехватывать 0.3.dl?
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|