0
我想通過其內存地址調用一個函數。聲明功能與內存地址
我做一樣的東西:
int GetNewValue(int args)
{
return args * 2;
}
int main()
{
/*
Function address: 0x22feac
*/
int(*GetVal)(int) = 0x22feac; // instead of '&GetNewValue'
}
但是在編譯的時候,我得到以下錯誤:
[Error] invalid conversion from
int
toint (*)(int)
[-fpermissive
]
我怎麼能說從它的地址的方法?
(注意上面的例子中使用了簡單的恆定,但在我真正的代碼,我從掛鉤一個DLL注入的功能。)
你可以使用'reinterpret_cast',但爲什麼你這樣做? –
你可以對那個int執行施法遊戲,但是爲什麼? C++的輸入規則旨在防止這種類型的東西。 – user4581301
你想得到這個編譯?將其更改爲int(* GetVal)(int)=(int(*)(int))0x22feac;'。但是,這是UD,你確定你想要嗎? – DeiDei