estaba forreando, intentando pasar un long a un array de bytes:
Dim lngPtr As Long
Dim bvBytes(3) As Byte
lngPtr = 65535
Call CopyMemory(bvBytes(0), ByVal VarPtr(lngPtr), 4)
Debug.Print bvBytes(0); "-"; bvBytes(1); "-"; bvBytes(2); "-"; bvBytes(3)
copy memory esta declarado como:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
y el resultado es: " 255 - 255 - 0 - 0 "
Segun mis mediocres conocimientos, 1 byte con 255, indica 4 bits de 1s. Es decir, 255 y 255 serian 8 bits de 1s, o 2 bytes. Pero el Long ocupa unos misteriosos 4 bytes.
Ahora, si uso 65536, el resultado pasa a ser: " 0 - 0 - 0 - 0 "
que demonios pasa?
saludos