vale ahora tengo mas dudad
e probado con eso y pues ahora que veo no importa el numero de bytes que le escriba en el tercer parametro siempre pasa el resultado
porq? si le agregara mas bytes no estaria accediendo a las demas variables que se encuentran en esa posicion???
hice este code:
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Type AAA
A1 As Integer
A2 As Integer
A3 As Long
A4 As String
End Type
Private Sub Form_Load()
Dim A0 As AAA
Dim dir As Long
Dim DEST_integer As Integer
dim DEST_long as long
dim DEST_CHAR as string
A0.a1 = 50
A0.A2 = 20
A0.A3 = 50000
A0.A4 = "R"
dir = VarPtr(A0)
dir = dir + XXX
CopyMemory ByVal VarPtr(<type DESTINO>), ByVal dir, LEN DE BYTES
Debug.Print destino
End Sub
vale espero que me ayuden no podria estar bien y no resuelvo esto
pues primero esa duda porq escribiendo cualquier longitud en LEN BYTES( tercer parametro ) el numero de bytes que quiero copiar siempre obtengo el resultado correcto y eso esta bien
solo que tengo una duda si agrego mas bytes no estaria dandome una respuesta incorrecta ???
y pues la otra duda
porq los parametros se pasan por valor?
porq no da el resultado correcto pasandolos por referencia
?
gracias