我正在使用masm彙編程序,並且我正在使用kernel32.lib創建堆內存,但是在HeapCreate過程的Windows API頁面上,它並不告訴我它存儲了返回值的位置。 (即堆的句柄) 我會假設它存儲在EAX
?因爲大多數程序將其返回值設置爲EAX
。我打電話HeapCreate後,我打電話HealAlloc在我的堆分配一些內存:HeapCreate是否將堆句柄返回給EAX?
INCLUDE \masm32\include\kernel32.inc
INCLUDELIB \masm32\lib\kernel32.lib
.CODE
PUSH DWORD PTR 00h ;max size
PUSH DWORD PTR 00h ;initial size
PUSH DWORD PTR 04h ;flOption
CALL HeapCreate
PUSH DWORD PTR 04h ;dwBytes (the size in bytes)
PUSH DWORD PTR 04h ;dwFlag
PUSH EAX ;I am not sure if the heap handle is stored in EAX or not?
CALL HeapAlloc
END
從本質上講,我不知道是存儲返回值HeapCreate
哪裏。如果有人可以澄清在哪裏,我將不勝感激。
感謝
您應該熟悉stdcall調用約定,該約定是用於Windows API調用的默認值。請參閱[這裏](https://msdn.microsoft.com/en-us/library/984x0h58.aspx)和[這裏](https://msdn.microsoft.com/en-us/library/zxk0tw93.aspx) 。 –