我有這個函數讀取內存,並返回位於指定地址的字符串(或任何類型駐留在內存中)。但我得到的錯誤:將模板類型名投射到uint64
error: invalid conversion from 'uint64_t to 'const char*'
我在做什麼錯?我以前用這種方式看過它。這裏是我想要做的代碼:
template<typename T>
T ReadMemory(uint64_t addr, size_t size)
{
uint64_t some_address = addr;
size_t string_size = size;
uint64_t return_value;
//store address contents into return_value using driver
//cast typename on return_value
return (T)return_value;
}
int main()
{
string foo = ReadMemory<string>(some_address,some_size);
}
首先,你可能是'std :: uintptr_t'而不是'uint64_t'? – aschepler
否定的,我使用ULONG或uint64_t。無論哪種方式,與uintptr_t發生相同的投射問題 –
鑄造到一個std ::字符串是沒有意義的。 –