2009-12-28 16 views
0

您好我嘗試調用VirtualQueryEx函數來獲取有關內存保護的信息,但是我的代碼給我錯誤0x18(ERROR_BAD_LENGTH),我不知道我的代碼有什麼問題;Win API VirtualQueryEx函數,ERROR_BAD_LENGTH

代碼片斷:

PMEMORY_BASIC_INFORMATION阿特; VirtualQueryEx(processhandle,(LPVOID)(address),alte,sizeof(PMEMORY_BASIC_INFORMATION));

感謝您的幫助

+0

你不應該投'address'到'LPCVOID'? – SLaks 2009-12-28 23:32:55

回答

4

阿爾特needes被宣佈爲不MEMORY_BASIC_INFORMATION的指針之一。

MEMORY_BASIC_INFORMATION alte; 

VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(MEMORY_BASIC_INFORMATION)); 

編輯:注意它的sizeof(MEMORY_BASIC_INFORMATION)不是的sizeof(PMEMORY_BASIC_INFORMATION)。

其實,最好是這麼寫

VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(alte)); 
+0

錯誤C2664:'VirtualQueryEx':Konvertierung des Parameters 3'PMEMORY_BASIC_INFORMATION * __ w64'in'PMEMORY_BASIC_INFORMATION'nichtmöglich – h3rock 2009-12-28 23:35:35

+0

這是一個錯字。抱歉。它現在已經修復了。 – 2009-12-28 23:37:29

+0

編輯感謝它現在的工作 – h3rock 2009-12-28 23:41:02