поэтому я просматриваю какой-то исходный код, и эта одна вещь меня тошнит. Я немного новичок в C++, поэтому мне трудно понять, для чего это нужно. Я действительно не знаю, для чего нужен следующий typedef, и как он используется в коде ниже.C++ typedef с параметрами и fastcall
typedef void (__fastcall *TSecType_long___SetData_t)(DWORD dwAddress, DWORD dwEDX, DWORD dwValue);
Это некоторые значения, используемые для метода, который использует этот typedef.
const TSecType_long___SetData_t TSecType_long___SetData = reinterpret_cast<TSecType_long___SetData_t>(0x00518430); // 56 8B ? 8B ? ? ? ? ? 41 [3rd Result]
const DWORD *const pdwUserLocal = reinterpret_cast<const DWORD *const>(0x016A1234); // 8B ? ? ? ? ? 85 C9 74 ? 83 B8 ? ? ? ? 00 74 ? 8B ? ? ? ? ? 85 C0 7E ? 8B
const DWORD dwTeleportToggleOffset = 0x00008A94; // 8D ? ? ? ? ? 8B ? 8B ? E8 ? ? ? ? 85 ? 0F 85 ? ? ? ? 39 ? ? ? ? ?
const DWORD dwTeleportYOffset = 0x00008AAC; // 8D ? ? ? ? ? ? 8B ? E8 ? ? ? ? 6A ? 8B ? E8 ? ? ? ? 6A 00 68 ? ? ? ?
const DWORD dwTeleportXOffset = dwTeleportYOffset + 0x0C;
И для самого метода:
bool Teleport(_In_ int nX, _In_ int nY)
{
__try
{
{
DWORD dwUserLocal = *pdwUserLocal;
TSecType_long___SetData(dwUserLocal + dwTeleportToggleOffset, NULL, 0);
TSecType_long___SetData(dwUserLocal + dwTeleportXOffset, NULL, nX);
TSecType_long___SetData(dwUserLocal + dwTeleportYOffset, NULL, nY);
TSecType_long___SetData(dwUserLocal + dwTeleportToggleOffset, NULL, 1);
}
}
__except (EXCEPTION_EXECUTE_HANDLER)
{
return false;
}
return true;
}
Что именно ваш вопрос? – chris
Что это за код? Возможно, это произошло из некоторого компилятора C++? (не знал, что они есть, но я не могу представить себе такой код написания человеком). Если это так, то это не очень хорошая работа. –
@j_kubik, Это взломать игру (или, по крайней мере, похожую на одну). Не совсем уверен в том, для чего предназначены все длинные типы/имена, которые используют зарезервированные идентификаторы. – chris