12,6 → 12,8 |
|
CONST |
|
eol* = 0DX + 0AX; |
|
SectionAlignment = 1000H; |
|
DLL_PROCESS_ATTACH = 1; |
19,7 → 21,10 |
DLL_THREAD_DETACH = 3; |
DLL_PROCESS_DETACH = 0; |
|
KERNEL = "kernel32.dll"; |
USER = "user32.dll"; |
|
|
TYPE |
|
DLL_ENTRY* = PROCEDURE (hinstDLL, fdwReason, lpvReserved: INTEGER); |
27,7 → 32,6 |
|
VAR |
|
eol*: ARRAY 3 OF CHAR; |
base*: INTEGER; |
heap: INTEGER; |
|
36,15 → 40,14 |
thread_attach: DLL_ENTRY; |
|
|
PROCEDURE [windows-, "kernel32.dll", "ExitProcess"] ExitProcess (code: INTEGER); |
PROCEDURE [windows-, "kernel32.dll", "ExitThread"] ExitThread (code: INTEGER); |
PROCEDURE [windows-, "kernel32.dll", "GetProcessHeap"] GetProcessHeap (): INTEGER; |
PROCEDURE [windows-, "kernel32.dll", "HeapAlloc"] HeapAlloc (hHeap, dwFlags, dwBytes: INTEGER): INTEGER; |
PROCEDURE [windows-, "kernel32.dll", "HeapFree"] HeapFree(hHeap, dwFlags, lpMem: INTEGER); |
PROCEDURE [windows-, KERNEL, ""] ExitProcess (code: INTEGER); |
PROCEDURE [windows-, KERNEL, ""] ExitThread (code: INTEGER); |
PROCEDURE [windows-, KERNEL, ""] GetProcessHeap (): INTEGER; |
PROCEDURE [windows-, KERNEL, ""] HeapAlloc (hHeap, dwFlags, dwBytes: INTEGER): INTEGER; |
PROCEDURE [windows-, KERNEL, ""] HeapFree (hHeap, dwFlags, lpMem: INTEGER); |
PROCEDURE [windows-, USER, ""] MessageBoxA (hWnd, lpText, lpCaption, uType: INTEGER): INTEGER; |
|
PROCEDURE [windows-, "user32.dll", "MessageBoxA"] MessageBoxA (hWnd, lpText, lpCaption, uType: INTEGER): INTEGER; |
|
|
PROCEDURE DebugMsg* (lpText, lpCaption: INTEGER); |
BEGIN |
MessageBoxA(0, lpText, lpCaption, 16) |
68,7 → 71,6 |
process_detach := NIL; |
thread_detach := NIL; |
thread_attach := NIL; |
eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X; |
base := code - SectionAlignment; |
heap := GetProcessHeap() |
END init; |