¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add¡¡¡¡¡¡¡¡¡¡dwTotalMemory£»1000000
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£repeat
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡@lpLastMem
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GlobalAlloc£»GPTR£»1000000
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡@lpLastMem£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add¡¡¡¡¡¡¡¡¡¡dwTotalMemory£»1000000
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡inc¡¡¡¡¡¡¡¡¡¡dwCount
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GlobalReAlloc£»eax£»100£»GMEM_ZEROINIT
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sub¡¡¡¡¡¡¡¡¡¡dwTotalMemory£»1000000¡¡¡¡¡100
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SetDlgItemInt£»hWinMain£»IDC_MEMORY£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dwTotalMemory£»FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SetDlgItemInt£»hWinMain£»IDC_COUNT£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dwCount£»FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£until¡¡¡¡£¡¡¡@lpLastMem
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SetDlgItemText£»hWinMain£»IDC_INFO£»addr¡¡szInfo
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡ifCanQuit£»1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_ProcThread¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
_ProcDlgMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡proc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡uses¡¡ebx¡¡edi¡¡esi¡¡hWnd£»wMsg£»wParam£»lParam
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡local¡¡¡¡¡¡@dwTemp
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»wMsg
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡eax¡¡¡¡¡¡WM_CLOSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£if¡¡¡¡¡¡¡¡¡¡ifCanQuit
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡EndDialog£»hWnd£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£elseif¡¡eax¡¡¡¡¡¡WM_INITDIALOG
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡push¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡hWnd
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pop¡¡¡¡¡¡¡¡¡¡hWinMain
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡LoadIcon£»hInstance£»ICO_MAIN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡SendMessage£»hWnd£»WM_SETICON£»ICON_BIG£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡¡¡CreateThread£»NULL£»0£»offset¡¡_ProcThread£»NULL£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL£»addr¡¡@dwTemp
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡CloseHandle£»eax
£»********************************************************************
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡eax£»FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£endif
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret
¡¡
_ProcDlgMain¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡endp
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
start£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GetModuleHandle£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡hInstance£»eax
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡DialogBoxParam£»hInstance£»DLG_MAIN£»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL£»offset¡¡_ProcDlgMain£»NULL
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡ExitProcess£»NULL
£»¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end¡¡¡¡¡¡¡¡¡¡start
¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔÆ±ò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡
µÚ10Õ¡¡ÄÚ´æ¹ÜÀíºÍÎļþ²Ù×÷
10¡£1¡¡ÄÚ¡¡´æ¡¡¹Ü¡¡Àí£¨4£©
¡¡¡¡¡¡¡¡
¶ÔÓ¦µÄ×ÊÔ´ÎļþFragment¡£rcÈçÏ£º
//¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
#include¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
//¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
#define¡¡ICO_MAIN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1000
#define¡¡DLG_MAIN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡100
#define¡¡IDC_MEMORY¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡101
#define¡¡IDC_COUNT¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡102
#define¡¡IDC_INFO¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡103
//¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
ICO_MAIN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ICON¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Main¡£ico¡¨
//¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
DLG_MAIN¡¡DIALOG¡¡308£»¡¡207£»¡¡130£»¡¡50
STYLE¡¡DS_MODALFRAME¡¡£ü¡¡WS_POPUP¡¡£ü¡¡WS_VISIBLE¡¡£ü¡¡WS_CAPTION¡¡£ü¡¡WS_SYSMENU
CAPTION¡¡¡¨Ë鯬ÄÚ´æÑÝʾ¡¨
FONT¡¡9£»¡¡¡¨ËÎÌ塨
£û
¡¡RTEXT¡¡¡¨ÉêÇëÄÚ´æ×ÜÊý£º¡¨£»¡¡¡1£»¡¡7£»¡¡8£»¡¡60£»¡¡8
¡¡EDITTEXT¡¡IDC_MEMORY£»¡¡69£»¡¡5£»¡¡55£»¡¡12£»¡¡
ES_AUTOHSCROLL¡¡£ü¡¡ES_READONLY¡¡£ü¡¡WS_BORDER¡¡£ü¡¡WS_TABSTOP
¡¡RTEXT¡¡¡¨ÉêÇë´ÎÊý£º¡¨£»¡¡¡1£»¡¡7£»¡¡21£»¡¡60£»¡¡8
¡¡EDITTEXT¡¡IDC_COUNT£»¡¡69£»¡¡19£»¡¡55£»¡¡12£»¡¡
¡¡¡¡¡¡¡¡¡¡¡¡ES_AUTOHSCROLL¡¡£ü¡¡ES_READONLY¡¡£ü¡¡WS_BORDER¡¡£ü¡¡WS_TABSTOP
¡¡LTEXT¡¡¡¨¡¨£»¡¡IDC_INFO£»¡¡7£»¡¡37£»¡¡120£»¡¡8
£ý
//¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
³ÌÐòÔÚWM_INITDIALOGÏûÏ¢Öн¨Á¢ÁËÒ»¸öÏß³ÌÀ´Ñ»·ÉêÇëÄڴ棨Ï൱ÓÚÔÚºǫִ́ÐÐ_ProcThread×Ó³ÌÐò£¬Óë¶àÏß³ÌÏà¹ØµÄÄÚÈÝÇë²Î¼ûµÚ12Õ£©¡£È«¾Ö±äÁ¿dwCount¼Ç¼ÁËÉêÇëµÄ´ÎÊý£¬Ã¿´ÎÉêÇëÄÚ´æ¾Í½«ËüµÄÖµ¼Ó1¡£dwTotalMemory¼Ç¼Á˳ÌÐòÉêÇëµ½µÄÄÚ´æ×ÜÊý£¬Ã¿ÉêÇëÒ»¸ö1¡¡MBµÄÄڴ棬³ÌÐò½«ËüµÄÖµ¼ÓÉÏ1¡¡000¡¡000£¬Ã¿´ÎÓÃGlobalReAllocËõСÄÚ´æ¿é£¬Ôò½«ËüµÄÖµ¼õÈ¥999¡¡900¡£µ±×îºóÉêÇëÄÚ´æÊ§°ÜµÄʱºò£¬repeatÑ»·½áÊø¡£
ÔÚWindows¡¡2000ÏÂÔËÐÐһϳÌÐòÒÔÑéÖ¤½á¹û£¬¼¸ÃëµÄÔËÐÐÖУ¬ÏÔʾµÄ¼ÆÊý²»¶ÏÔö¼Ó£¬×îºóµÄ½á¹ûÈçͼ10¡£3Ëùʾ¡£
ͼ10¡£3¡¡¡¡ÄÚ´æË鯬»¯µÄÑÝʾ½á¹û
½á¹ûºÍÔ¤ÏëµÄÒ»Ñù£¬¾¹ý2¡¡027´ÎµÄ²Ù×÷£¬Ö»±£ÁôÁ˽ü202¡¡700¡¡BµÄÄڴ棬³ÌÐò¾Í³É¹¦µØ¡°Ä±É±¡±ÁËËùÓеĵØÖ·¿Õ¼ä£¬ÈÃÕû¸ö2¡¡GBÖмä³äÂúÁËË鯬£¬ÒÔÖÁÓÚÁ¬1¡¡MB´óСµÄÄÚ´æÒ²ÎÞ·¨ÉêÇëÁË£¡µ±³ÌÐòÔÚWindows¡¡9xÖÐÔËÐÐʱ£¬ÓÉÓÚ9xϵͳÔڸ߶˺͵ͶËÂÖ»»·ÖÅäÄÚ´æ¿é£¬ËùÒÔͬÑùµÄ°ì·¨¾Í²»»á²úÉúÄÚ´æË鯬£¬µ«ÊÇÈç¹ûÔÚÑ»·ÖÐÏÈAllocÁ½´Î¡¢È»ºóReallocÁ½´ÎµÄ»°ÈÔÈ»¿ÉÒÔÔì³ÉÄÚ´æË鯬»¯¡£
ËäÈ»ÕâÊÇÒ»¸ö¼«¶ËµÄÇé¿ö£¬µ«ÔÚÏÖʵÖлᷢÉúÂ𣿻áµÄ£¡ÀýÈç±àдһ¸ö±éÀú¶þ²æÊ÷µÄ³ÌÐò£¬Ã¿Ôö¼ÓÒ»¸ö½áµãµÄʱºòÉêÇëÒ»¿éÄڴ棬ÓÃÀ´´æ·ÅÖ¸ÏòÆäËû½áµãµÄÖ¸ÕëÒÔ¼°¸½¼ÓÔÚ½áµãÉϵÄÊý¾Ý£¬µ±½áµã´¦ÀíÍê±ÏºóËõСÄÚ´æ¿é£¬Ö»ÁôÏÂÖ¸ÕëÊý¾Ý£¬ÄÇôÇé¿ö¾ÍºÍÑÝʾ³ÌÐòÀàËÆ£¬µ±Ê÷µÄ½áµã×ã¹»¶àµÄʱºò£¬¾¹ýÒ»¶Îʱ¼äµÄ²Ù×÷£¬ÄÚ´æÖоͻá³äÂúË鯬¡£
½â¾öÄÚ´æË鯬»¯µÄ°ì·¨ºÜ¼òµ¥£¬ÒòΪË鯬֮¼äÓдóÁ¿µÄÄÚ´æÊÇ¿ÕÏеģ¬Ö»ÒªÔÊÐíWindowsÒÆ¶¯Ð¡¿éµÄÔÚÓÃÄڴ棬¾Í¿ÉÒÔ½«Ë鯬ºÏ²¢³É´ó¿éµÄ¿ÕÏÐÄڴ棬µ«ÊÇÔÚÓÃÄÚ´æ±»ÒÆ¶¯ºó£¬³ÌÐòÖжÔÓ¦µÄÖ¸ÕëÒ²ÒªËæ×Ÿı䣬²»È»¾Í»á·ÃÎʵ½´íÎóµÄµØÖ·£¬¶øÇÒ£¬ÔÚʹÓÃÄÚ´æµÄ¹ý³ÌÖУ¬ÄÚ´æÐèÒªÓиöËø¶¨µÄ¹ý³Ì£¬·ñÔòÓõ½Ò»°ëµÄʱºò±»WindowsÒÆ¶¯ÁË£¬½á¹ûÒÀÈ»ÊÇ´íÎóµÄ£¬Ö»ÓгÌÐò½«ÄÚ´æ½âËø£¬Windows²Å¿ÉÒÔ×ÔÓÉÒÆ¶¯ËüÃÇ£¬Õâ¾ÍÒýÉì³öÁË¿ÉÒÆ¶¯ÄÚ´æ¿éµÄ¸ÅÄîºÍ²Ù×÷µÄ»ù±¾·½·¨¡£
ÒªÉêÇëÒ»¸ö¿ÉÒÆ¶¯µÄÄÚ´æ¿é£¬Ê¹Óõĺ¯Êý»¹ÊÇGlobalAlloc£¬µ«ÐèҪʹÓò»Í¬µÄ²ÎÊý£º
invoke¡¡¡¡GlobalAlloc£¬GMEM_MOVEABLE¡¡or¡¡GMEM_ZEROINIT£¬dwBytes
¡£if¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡mov¡¡hMemory£¬eax
¡£endif
GMEM_MOVEABLE±êÖ¾Ö¸¶¨ÁË·ÖÅäµÄÄÚ´æÊÇ¿ÉÒÆ¶¯µÄ£¬GMEM_ZEROINITͬÑù±íʾ½«ÉêÇëµ½µÄÄÚ´æ¿éµÄÄÚÈݳõʼ»¯Îª0£¨Ò²¿ÉÒÔÓÃGHND±êÖ¾£¬Ëü¾ÍÏ൱ÓÚGMEM¡¡_MOVEABLE¡¡or¡¡GMEM_ZEROINIT£©£»Èç¹ûÄÚ´æÉêÇëʧ°Ü£¬eaxÖзµ»ØNULL£¬³É¹¦µÄ»°·µ»ØÖµÊÇÒ»¸ö¾ä±ú¶ø²»ÊÇÄÚ´æÖ¸Õ룬Óû§ÐèÒª±£´æÕâ¸ö¾ä±ú£¬ÔÚËø¶¨»òÊÍ·ÅÄÚ´æµÄʱºò»¹ÒªÓõ½Ëü¡£Ò»¸ö½ø³Ì¿ÉÒÔÉêÇëµÄ¿ÉÒÆ¶¯ÄÚ´æµÄ¿éÊý×î´ó²»Äܳ¬¹ý65¡¡536¸ö£¬ÉêÇë¹Ì¶¨ÄÚ´æ¿éʱÔòûÓÐÊýÁ¿ÏÞÖÆ¡£
ҪʹÓÿÉÒÆ¶¯ÄÚ´æÖ®Ç°£¬ÐèÒª°ÑËüËø¶¨£¬ÕâÏ൱ÓÚ¸æËßWindowsÏÖÔÚ³ÌÐòҪʹÓÃÕâ¿éÄÚ´æÁË£¬²»Äܽ«ËüÒÆ¶¯£¬Ëø¶¨ÄÚ´æÊ¹ÓÃGlobalLockº¯Êý£º
invoke¡¡¡¡GlobalLock£»hMemory
¡£if¡¡¡¡¡¡¡¡¡¡eax
¡¡¡¡¡¡¡¡mov¡¡lpMemory£¬eax
¡£endif
º¯ÊýµÄÈë¿Ú²ÎÊýÊÇGlobalAlloc·µ»ØµÄÄÚ´æ¾ä±ú£¬Èç¹ûËø¶¨³É¹¦£¬º¯Êý·µ»ØÒ»¸öÖ¸Õ룬³ÌÐò¿ÉÒÔÓÃʹÓù̶¨ÄÚ´æ¿éͬÑùµÄ·½·¨À´Ê¹ÓÃËü£»Èç¹ûËø¶¨Ê§°Ü£¬Ôòº¯Êý·µ»ØNULL¡£Ã¿´ÎËø¶¨·µ»ØµÄÖ¸ÕëλÖÿÉÄÜÊDz»Í¬µÄ£¬µ«ÄÚ´æ¿éÖеÄÊý¾Ý²»»á±ä»¯¡£
µ±³ÌÐòÔÝʱ²»ÐèÒª²Ù×÷Õâ¿éÄÚ´æµÄʱºò£¬Ó¦¸Ã½«Ëü½âËø£¬·ñÔòºÍʹÓù̶¨µÄÄÚ´æ¿é¾ÍûÓÐÇø±ðÁË£¬½âËøÊ¹ÓÃGlobalUnlockº¯Êý£º
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GlobalUnlock£»hMemory
º¯ÊýµÄ²ÎÊýͬÑùÊÇGlobalAlloc·µ»ØµÄ¾ä±ú£¬½âËø³É¹¦µÄ»°º¯Êý·µ»Ø·Ç0Öµ¡£¶ÁÕß¿ÉÄÜÓиöÎÊÌ⣺ÔÚ¶àÏ̵߳ijÌÐòÖУ¬Á½¸öµØ·½Í¬Ê±Ëø¶¨Äڴ棬µ«µ±Ò»¸öµØ·½»¹ÔÚʹÓõÄÇé¿öÏÂÁíÒ»¸öµØ·½È´µ÷ÓÃGlobalUnlock½«ÄÚ´æ½âËøÁËÔõô°ì£¿Æäʵ²»Óõ£ÐÄÕâ¸öÎÊÌ⣬WindowsΪÿ¸ö¿ÉÒÆ¶¯µÄÄÚ´æ¾ä±úά»¤Ò»¸öËø¶¨¼ÆÊý£¬Ã¿´ÎËø¶¨ÄÚ´æµÄʱºò¼ÆÊý¼Ó1£¬½âËøµÄʱºò¼ÆÊý¼õ1£¬Ö»Óе±¼ÆÊýΪ0µÄʱºòÄÚ´æ²ÅÕæÕý±»½âËø£¬ËùÒÔÖ»Òª³ÌÐòÖеÄGlobalLockº¯ÊýºÍGlobalUnlockº¯ÊýÊÇÅä¶ÔµÄ£¬¾Í²»Óõ£ÐÄÕâ¸öÎÊÌâ¡£
ÒªÊÍ·ÅÒ»¸ö¿ÉÒÆ¶¯µÄÄÚ´æ¿é£¬Í¬ÑùʹÓÃGlobalFreeº¯Êý£º
¡¡¡¡¡¡¡¡invoke¡¡¡¡GlobalFree£¬hMemory
µ«Ê¹ÓõIJÎÊýÊÇGlobalAlloc·µ»ØµÄÄÚ´æ¾ä±ú£¬Èç¹ûÊͷųɹ¦£¬º¯Êý·µ»ØNULL¡£²»¹ÜÄڴ浱ǰÊÇ·ñ´¦ÔÚËø¶¨×´Ì¬£¬¶¼¿ÉÒÔ±»³É¹¦ÊÍ·Å¡£
µ÷Õû¿ÉÒÆ¶¯ÄÚ´æ¿éµÄ´óС£¬Í¬ÑùʹÓÃGlobalReAllocº¯Êý£º
¡¡¡¡¡¡¡¡invoke¡¡¡¡GlobalReAlloc£¬hMemory£¬dwBytes£¬GMEM_ZEROINIT¡¡or¡¡GMEM_MOVEABLE
Èç¹ûµ÷Õû³É¹¦£¬·µ»ØÖµ¾ÍÊÇÊäÈëµÄhMemory£¬Ê§°ÜµÄ»°·µ»ØÖµÊÇNULL¡£¼´Ê¹ÄÚ´æ¿éÔÚËø¶¨×´Ì¬£¬º¯ÊýÈÔÈ»¿ÉÒÔµ÷Óóɹ¦£¬µ«ÕâʱºòÄÚ´æ¿é¿ÉÄÜÒѾ±»Òƶ¯ÁËλÖã¬ÔÀ´ÓÃGlobalLockº¯Êý»ñÈ¡µÄÖ¸Õë¿ÉÄÜÒѾʧЧÁË£¬ËùÒÔµ÷Õû¿ÉÒÆ¶¯ÄÚ´æ¿éµÄ´óС×îºÃ»¹ÊÇÏȽ«ÄÚ´æ½âËø£¬µÈµ÷ÕûÍê±ÏÒÔºóÔÙËø¶¨Ê¹Óá£
ÓÉÓÚʹÓÿÉÒÆ¶¯µÄÄÚ´æ¿é¶àÁËÒ»¸öËø¶¨µÄ¶¯×÷£¬ËÙ¶È×ÔȻҪ±ÈʹÓù̶¨µÄÄÚ´æ¿éÒªÂýÒ»µã£¬µ«¹Ì¶¨ÄÚ´æ¿éÓÖ´æÔÚË鯬ÎÊÌ⣬³ÌÐòÖÐʹÓÃÄÄÖÖ·½·¨ÓиöÈ¡ÉáµÄÎÊÌâ¡£Èç¹û³ÌÐòҪƵ·±µØ·ÖÅäºÍÊͷŲ»¶¨³¤µÄÄÚ´æ¿é£¬ÄÚ´æµÄË鯬»¯ÏÖÏó¾Í±È½ÏÑÏÖØ£¬ÌرðÊǵ±³ÌÐò³¤Ê±¼äÔËÐÐʱ£¬ÕâÖÖÇé¿öÏÂʹÓÿÉÒÆ¶¯ÄÚ´æ¿é±È½ÏºÃ£»Èç¹û³ÌÐ
СÌáʾ£º°´ »Ø³µ [Enter] ¼ü ·µ»ØÊéÄ¿£¬°´ ¡û ¼ü ·µ»ØÉÏÒ»Ò³£¬ °´ ¡ú ¼ü ½øÈëÏÂÒ»Ò³¡£
ÔÞÒ»ÏÂ
Ìí¼ÓÊéÇ©¼ÓÈëÊé¼Ü