Buen día con todos, pido su ayuda con respecto a la utilización del API CopyMemory
He encontrado varias maneras de declararlo:
Subroutine CopyMemory(ref long destination, long Source , long Length) Library "kernel32.dll" Alias for "RtlMoveMemory"
Subroutine CopyMemory(any Destination, ulong Source, long Length) Library "kernel32.dll" Alias for "RtlMoveMemory"
Function long CopyMemory(REF STRUCTURE Destination[], long Source, long Length) library "kernel32.dll" Alias For "RtlMoveMemory;Ansi"
SUBROUTINE CopyMemory( REF STRUCTURE d, LONG s, LONG l) LIBRARY 'KERNEL32.DLL' ALIAS FOR RtlMoveMemory
pero al momento de hacer el llamado en algunos casos me sale que el parametro de referencia no es el tipo de dato aunque le haya declarado antes, y en otros sale el siguiente error:
Error: Error calling external function %s
lo que estoy haciendo es utilizar un OCX de un equipo biométrico, éste equipo me devuelve todos los datos en Long y tengo un evento que los recibe en tiempo real, pero al momento de pasar uno de ellos a esta API CopyMemory, no me devuelve el dato esperado de manera correcta.
En sí el código de VB6 que trato trasladar a PB es el siguiente:
Private Sub S35TPC1_OnReceiveEvent(ByVal M_No As Long, ByVal evType As Long, evData As Long, ByVal evTr As Long, ByVal evAct As Long, ByVal evTime As Long)
Dim sz As String
Dim szType As String
Dim szIpAddr As String
szIpAddr = LongIP2Dotted(M_No)
Dim strData As String, strByte(IDNUMBER_LENGTH - 1) As Byte
If evType = 1 Or evType = 3 Then
CopyMemory strByte(0), evData, 20 ...............................................AQUI ME SURGE EL PROBLEMA EN PB 10.5
strData = Val(StrConv(strByte, vbUnicode))
End If
szType = "UNKNOWN"
Select Case evType
Case 1
sz = "" & szIpAddr & ",Type=GLOG,ID=" & strData & ",Mode=" & evTr & ",Verify=" & evAct
lstEvent.AddItem "Time=" & puiRtcSeconds2YMDHMS(evTime)
Case 3
sz = "M_Ip=" & szIpAddr & ",Type=VERIFY_OK,ID=" & strData
End Select
lstEvent.AddItem sz
End Sub
La línea de código que indico donde me genera problemas es donde al API CopyMemory le doy dos variables un array de tipo Byte y un Long que es lo que me envia el biométrico.
es en esa línea donde me surgen los errores arriba mencionados,
Espero alguien pueda ayudarme y gracias por adelantado.
Saludos,
Frank P.
Has recibido este mensaje porque estás suscrito al grupo "TechEra" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a techeraz9+unsubscribe@googlegroups.com.
.
0 comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.