practicamente se hace lo mismo

Código
' Global
private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
' CODIGO UNO:
Dim A As String
Dim B As Long
Dim C(0 To 20) As Byte
A = "ABCDE"
Call CopyMemory(C(0), ByVal A, LenB(A))
For B = 0 To 20
Debug.Print Chr$(C(B))
Next
Output:
A
B
C
D
E
NULL
NULL
NULL
...
' CODIGO DOS
Dim A As String
Dim pA As Long
Dim B As Long
Dim C(0 To 20) As Byte
A = "ABCDE"
pA = StrPtr(A)
Call CopyMemory(C(0), ByVal pA, LenB(A))
For B = 0 To 20
Debug.Print Chr$(C(B))
Next
OUTPUT:
A
NULL
B
NULL
C
NULL
D
NULL
E
NULL
...etc
la unica diferencia es el tipo de variable de la direccion de la cadena
pero aun asi en el primer codigo pasar de tipo String a las API es pasar la direccion ( sistema BSTR )
y en el segundo codigo se obtiene explicitamente primero la direccion y se le pasa la direccion

es lo mismo no? :/
pero aun no entiendo porque sale diferente :/


 
  




 Autor
 Autor
		


 En línea
									En línea
								







 
						
