-1
它在msdn網站上提供了一個非常簡短的描述,說「嘗試訪問無效地址」。我只是不確定它是否意味着無效,因爲「這甚至不是地址」或者「你不能使用這個地址!」當WriteProcessMemory返回487個ERROR_INVALID_ADDRESS時,這意味着什麼?
因爲我不知道它是哪一個,所以很難決定接下來要做什麼。
我到WriteProcessMemory的電話:
if(!WriteProcessMemory(hProcess, (LPVOID)loc.c_str(), (LPVOID)"Book of Stupid", sizeof("Book of Stupid"), NULL))
{
std::cout << "writefail to " + loc + "\nerror ";
std::cout << GetLastError() << std::endl;
}
感謝您的時間
使用'sizeof(「Book of Stupid」)'是非常錯誤的,因爲它給你一個指針的大小(通常是4或8個字節,取決於你的系統),而不是你的字符串的長度因爲你可能期待... –
這意味着它說,地址是無效的。在你的過程中,* loc *的地址在另一個過程中也是有效的機率很低。它是一個有效地址並且做你希望它的可能性是-100% –
@barakmanos:實際上,no,sizeof(「constant string」)給出了字符串的長度(包括終止符)。 (或者至少,這就是它在MSVC中的作用,我想它是標準的,但我不確定。) –