|
mdl_memory.bas:
- Option Explicit
- Private Declare Function VirtualAlloc Lib "kernel32.dll" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
- Private Declare Function VirtualFree Lib "kernel32.dll" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
- Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
- Public Function malloc(ByVal dwLen As Long) As Long
- malloc = VirtualAlloc(0, dwLen, &H1000, &H40)
- End Function
- Public Sub free(ByVal PVOID As Long)
- VirtualFree PVOID, 1, &H1000
- End Sub
- Public Sub memcpy(ByVal pDst As Long, ByVal pSrc As Long, ByVal dwLen As Long)
- RtlMoveMemory pDst, pSrc, dwLen
- End Sub
- Public Sub memset(ByVal pDst As Long, ByVal bFill As Byte, ByVal dwLen As Long)
- Dim i As Long
- For i = 0 To dwLen - 1
- RtlMoveMemory pDst + i, VarPtr(bFill), 1
- Next
- End Sub
复制代码
|
评分
-
查看全部评分
|