open.mp forum
How to call a function an address? - Printable Version

+ open.mp forum (https://forum.open.mp)
-- Forum: General (https://forum.open.mp/forumdisplay.php?fid=19)
--- Forum: Programming (https://forum.open.mp/forumdisplay.php?fid=56)
--- Thread: How to call a function an address? (/showthread.php?tid=2158)



How to call a function an address? - oukibt - 2021-07-06

Hi I am trying to call a function at an address from a plugin but I am getting a crash.

Code:
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX* amx)
{
? ? VirtualUnlock((LPVOID)0x48B5B0, 0x20);

? ? ((int(__fastcall*)(char*))0x48B5B0)("query");
? ? return 1;
}

https://cdn.discordapp.com/attachments/582915540285128725/862083931314585630/unknown.png

I think, this is GetConsoleVariableInt function


RE: How to call a function an address? - SimoSbara - 2021-07-14

(2021-07-06, 09:36 PM)oukibt Wrote: Hi I am trying to call a function at an address from a plugin but I am getting a crash.



Code:
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX* amx)

{

? ? VirtualUnlock((LPVOID)0x48B5B0, 0x20);



? ? ((int(__fastcall*)(char*))0x48B5B0)("query");

? ? return 1;

}



https://cdn.discordapp.com/attachments/582915540285128725/862083931314585630/unknown.png



I think, this is GetConsoleVariableInt function



Hi, can you show the crash log, if there is one.



Maybe you should try to cast the address with __stdcall. Another thing you can check is the return value of VirtualUnlock, if the return value is zero then you should look at GetLastError().?



I suggest to read this documentation before doing this kind of?stuff:?https://docs.microsoft.com/en-us/cpp/cpp/stdcall?view=msvc-160.