Código de error OLE 0x80020006: Código de estado COM

He estado intentado crear un formulario para la captura de huellas digitales con los SDK's de DigitalPersona para un escáner U.are.U 4500, y al intentar llamar uno de los métodos de la DLL me manda el mensaje anterior.
Este es mi código del formulario
Local cTem As Strin
Local nI As Integ
Captura = CreateObject("DPFPDevX.DPFPCapture")
Captura. StartCapture()
Decl Stri DPFPVerify In DPFPDevX As Templ Stri @, Inte
Captura.Templ(@cTem, nI)

1 respuesta

Respuesta
1
Mmm bueno posiblemente, la ocx no estra crackeada por que creo que estas usando com estos son gratuitos, pero normalmente no están crackeados, por lo tanto debes descargar los com crackeados y tratar de implementarlo, ademas creo que no limpias jamas la DLL entonces esta nunca se limpia y por el tamaño de la misma esta full y necesitas limpiarla, verifica y me cuentas
Buenas noches, disculpa mi indiorancia, pero a que te refieres con "LIMPIAR LA DLL", ¿cómo se hace eso?.
Por otra parte, ¿aunque haya bajado los SDK's desde la página de DigitalPersona directamente no están craqueados?
Mmm bueno mira lo que pasa que lo que usas son COM, estas son como ocx las cuales fox las interpreta como un objeto, pero estas ocx no están bien es decir muchas de estas están echas en una forma para que después las tengas que comprar, pero bueno si tu consideras que tienes permiso para usar lo único que haces es limpiar la dll puede ser que sea eso, por lo tanto lo que tienes que hacer es un clear de la dll si quieres mandame tu correo y te explico de mejor forma con un ejemplo
Buenas noches, te mando mi dirección de correo para que ma hagas favor de ayudarme, oye!, ¿No se si también con las SDK's de Free Fingerprint se pueda hacer?,
Gracias.
Mi correo: (xxxxxx)
Clear Dlls "uno"
Donde uno es el nombre de tu dll, pero bueno la verdad no se lo que necesitas por que un com no debería de darte ningún problema pero bueno te mande un ejemplo para que verifiques como debes de limpiar las dll pero sino te llego te lo mando también por aquí
Function ServerTime
    Parameters tcServerName
    Declare Integer NetRemoteTOD In NetApi32 String @, Integer @
    Declare Integer RtlMoveMemory In Win32Api String @OutBuffer, Integer InBuffer, Integer Bytes2Copy
    tdBuffOut = Replicate(Chr(0), 48)
    tdBuffIn = 0
    lcTryServerName = StrConv(tcServerName, 5)
    xBoolean = .F.
    rcx = NetRemoteTOD(@lcTryServerName, @tdBuffIn)
    If rcx = 0
        =RtlMoveMemory(@tdBuffOut, tdBuffIn, 48)
    Else
        lcTryServerName = StrConv("\\" + tcServerName, 5)
        rcx = NetRemoteTOD(@lcTryServerName, @tdBuffIn)
        If rcx = 0
            = RtlMoveMemory(@tdBuffOut, tdBuffIn, 48)
        Else
            xBoolean = .T.  && *-- Error al encontrar el servidor, devuelve DateTime local.
        EndIf
    EndIf
Clear dlls "NetRemoteTOD"
Buenas noches, disculpa que no haya respondido tu menaje, ya probé lo que me mandaste de otra pero me marca el siguiente error:
"no se puede encontrar el punto de entrada ocaptura en la dll"
Mi código es el siguiente:
Declare Integer oCaptura In DPFPDevX String @, Integer @
tdBuffOut = Replicate(Chr(0), 60)
tdBuffIn = 0
xBoolean = .F.
rcx = oCaptura(@tdBuffOut, @tdBuffIn)
If rcx = 0
=RtlMoveMemory(@tdBuffOut, tdBuffIn, 48)
Else
lcTryServerName = StrConv("\\" + tcServerName, 5)
rcx = NetRemoteTOD(@lcTryServerName, @tdBuffIn)
If rcx = 0
= RtlMoveMemory(@tdBuffOut, tdBuffIn, 48)
Else
xBoolean = .T. && *-- Error al encontrar el servidor, devuelve DateTime local.
EndIf
EndIf
clear dlls "DPFPDevX"
Pero bueno que es lo que estas tratando de hacer, el código que te mande fue el código que yo te mando como ejemplo para que verifiques como limpiar una dll, ademas recuerda que todo se programa diferente, es decir tu com se programara de alguna forma, pero bueno ! Que es lo que realmente necesitas, y fijo no te la va a encontrar por que es una función que se encarga de ver el time de un servidor por !
Hola buenas noches, disculpa mi terquedad, pero yo probé con el código que me mandaste solo para las declaraciones de las variables, y la hora de tratar de acceder a las DLLs por medio de mis variables, es donde me marca el error, independientemente del código posterior. Ojalá puedas ayudarme. Gracias
Mmm, bueno entonces no es problema de la dll, la dll es tuya o la conseguiste
?
La bajé directamente de la página de DigitalPersona, en la sección de DSK's gratis
Ooo, ¿bueno en realidad que es lo que deseas hacer?
Tal vez tenga una mejor solución !
Sino la tengo te ayudo a terminar tu solución jajaja
Bueno, lo que intento hacer es leer una huella digital desde un escáner U.areU 4500 de Digital Persona, por medio de las Dll's del mismo, pero al utilizar los Objetos OLE desde visual fox pro 9 y tratar de accesar a las funciones me marca el error siguiente:
"Código de error OLE 0x80020006: Código de estado COM"
Que es el error que inicialmente te mandé, ahora al tratar de accesar a las funciones sin agregar un objeto OLE, marca los errores que te mande con anterioridad.
Espero ser claro, pero de no ser así estoy totalmente a tus ordenes.
Gracias, espero tu pronta respuesta.
Bueno estuve investigando y encontré varios links espero que te sirvan de lo contrario sige comentando y te seguiré ayudando !
http://support.microsoft.com/kb/822335/es
http://support.microsoft.com/kb/193944/es
Buenas noches, de hecho ya había revisado esas páginas pero son referentes a visual fox pro 8 y yo estoy utilizando Visual Fox Pro 9
Mmm pues no cambia en nada, la sintaxis es la misma lo único que aveces cambia es la ingeniería !
Bueno, ya se que solo cambia la ingeniería, pero el artículo dice que se soluciona instalando VISUAL FOX PRO 8, yo tengo visual FOx PRO 9 y aún tengo el problema.
Vaya entonces lo que tienes que hacer es cambiar la ingeniería, tal vez solo la soporta visual fox pro 8 entonces lo que tienes que hacer es cambiar la ingeniería donde es que vas usar eso, por lo tanto escribes
Set EngineBehavior 80

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas