|
|
|
|
API di Windows. API FillMemory per copia di byte |
|
|
 Stampa |
Torna Indietro |
| Linguaggio: Visual Basic |
Autore: Mauro Puddinu |
Data Archiviazione: 14/07/1999 |
Possiamo usare la funzione API FillMemory per copiare un valore (byte) su un blocco di memoria, che potrebbe essere un array o parte di esso. Il tipo Boolean è formato in realtà da due valori Integer: True (- 1) e False (0). Siccome ogni elemento di un array Boolean occupa 2 byte, esso è facilmente riempibile con coppie di zeri (False) o coppie di &HFF (che diventano &HFFFF, cioè -1 = True). Ecco una funzione che esegue il riempimento dell'intero array Boolean, modificabile per consentire anche il riempimento di una parte dell'array. Da questa funzione se ne può ricavare facilmente un'altra per gestire array di Byte. Questa funzione è circa il doppio più veloce di un ciclo For/Next con assegnazione.
Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" ( _ BlockToFill As Any, ByVal dwSize As Long, ByVal chValue As Byte)
'Riempie un array di Boolean col valore specificato usando la 'funzione API FillMemory Public Sub FillArrayBool(bArray() As Boolean, ByVal bValue As Boolean)
Dim lPrimo As Long, lUltimo As Long, lElementi As Long Dim iSize As Integer, chValue As Byte lPrimo = LBound(bArray) lUltimo = UBound(bArray) lElementi = lUltimo - lPrimo + 1 iSize = Len(bArray(lPrimo)) If bValue Then chValue = 255 '&HFF: se bValue = False chValue = 0 End If FillMemory bArray(lPrimo), lElementi * iSize, chValue
End Sub
|
|
Note:
(Nessuna)
|
Codice testato con: Visual Basic
Versione: 6.0 (Service Pack 5)
Sito Produttore: http://www.microsoft.com/
|
|
|
Chi c'è online
|
In questo momento ci sono
14
Visitatori
|
|