USO de los DLL

USO de los DLL

Postby busmatic » Sat Aug 30, 2008 11:26 pm

Estimados Amigos, Tengo un lector de barras 2d este genera una lectura de nuestra cedula de identidad, esta informacion es encriptada, me han dado la dll que desencripta y da los datos que necesito leer en un string separados por comas.

Mandaron el Dll y solo pusieron esto..

/*

cuenta con una librería denominada "BarCodeReader.dll" desarrollada en c++,
la cual cuenta con una unica funcion publica "LeeCodigoBarras" que recibe como argumento
la ruta de un archivo de texto, y retorna datos demográficos contenidos en la cédula de
identidad separados por comas(,). El archivo de texto debe contener
la lectura binaria de los 700 bytes contenidos en el código PDF417 que compone la cédula de identidad.
*/

Ya tengo el lector, este genera un archivo .BIN

dentro del dll esta la function.
Ahora tengo esto ..

static nHandle

Function Lector()
* Public oCedulatext := MEMOREAD("C:\proyectos\listbox\Bin\lecturas\lectura1.bin")
Public oCedulatext := "C:\proyectos\listbox\Bin\lecturas\lectura1.bin"

nHandle := Loadlibrary("BarCodeReader.dll")
msginfo(LeeCodigoBarras(oCedulatext))
FreeLibrary(nHandle)
return nil
*======================================================================
DLL FUNCTION LeeCodigoBarras(oCedulatext AS LPSTR) AS LPSTR LIB nHandle

Me da Una error
Microsoft Visual C++ Runtime Library
RunTime Error ¡¡

A alguien le ha pasado,, necesito ayuda, me enviaron solo el texto que ven arriba de informacion de la function.

Gracias
Busmatic de CR
User avatar
busmatic
 
Posts: 51
Joined: Fri Jun 30, 2006 6:56 pm

Postby Antonio Linares » Sun Aug 31, 2008 3:09 pm

Prueba asi:

DLL FUNCTION LeeCodigoBarras(oCedulatext AS LPSTR) AS LPSTR PASCAL LIB nHandle
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

No funciona ,, pero ahora me edad un error STR()

Postby busmatic » Mon Sep 01, 2008 1:53 am

Bueno el error de runtime se quito, pero ahora me da un error,
Descripci¾n del detalle: Error BASE/1099 Error de argumento: STR
Argumentos:
[ 1] = U
[ 2] = U
[ 3] = U

Llamadas a la pila
==================
llamada desde: STR(0)
llamada desde: LEECODIGOBARRAS(0)
llamada desde: LECTOR(31)
llamada desde: ENTRADAS(70)



Pero lo aplique de esta manera

Function Lector()
* Public oCedulatext := MEMOREAD("C:\proyectos\listbox\Bin\lecturas\lectura1.bin")
* Public oCedulatext := "C:\proyectos\listbox\Bin\lecturas\lectura1.bin"
* Public oCedulatext := "C:\proyectos\listbox\Bin\lecturas\lectura2.txt"
* Public oCedulatext := "C:\proyectos\listbox\Bin\lecturas\lectura3.txt"
* nHandle := Loadlibrary("BarCodeReader.dll")
msginfo(LeeCodigoBarras(oCedulatext))
FreeLibrary(nHandle)
return nil
*======================================================================

DLL FUNCTION LeeCodigoBarras(oCedulatext AS LPSTR) AS LPSTR PASCAL LIB nHandle

Cualquier ayuda, los dioses los agradeceran
User avatar
busmatic
 
Posts: 51
Joined: Fri Jun 30, 2006 6:56 pm

Omita el error STR(), fue culma mia,peor sigue el error

Postby busmatic » Mon Sep 01, 2008 2:14 am

Esque habia quitado la la variable de
nHandle := Loadlibrary("BarCodeReader.dll")
Por eso se da el SRT()

Aun no puedo dar con la solucion del problema.
Ayuda toda la posible.

Gracias
User avatar
busmatic
 
Posts: 51
Joined: Fri Jun 30, 2006 6:56 pm

Postby Antonio Linares » Mon Sep 01, 2008 7:42 am

> Aun no puedo dar con la solucion del problema.

Cual es el problema ahora ? Que error da ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Estimado Antonio Linares

Postby busmatic » Mon Sep 01, 2008 2:21 pm

Igual el mismo problema. no tomes en cuenta mi segundo post

MISMO PROPBLEMA

Con lo que me enviaste no mejoro


Microsoft Visual C++ Runtime Library
RunTime Error ¡¡

Busmatic de CR
Gracias Ayuda.......
User avatar
busmatic
 
Posts: 51
Joined: Fri Jun 30, 2006 6:56 pm

Postby Antonio Linares » Mon Sep 01, 2008 2:42 pm

Estas usando alguna otra función de la DLL ?

Muéstrame como estas usandola ahora, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Antonio Linares

Postby busmatic » Mon Sep 01, 2008 5:38 pm

Mandaron el Dll y solo pusieron esto..

/*

cuenta con una librería denominada "BarCodeReader.dll" desarrollada en c++,
la cual cuenta con una unica funcion publica "LeeCodigoBarras" que recibe como argumento
la ruta de un archivo de texto, y retorna datos demográficos contenidos en la cédula de
identidad separados por comas(,). El archivo de texto debe contener
la lectura binaria de los 700 bytes contenidos en el código PDF417 que compone la cédula de identidad.
*/

Ya tengo el lector, este genera un archivo .BIN

bajar de el ftp el archivos.rar donde estan las .bin y .dll asi pudes hacer las pruebas dl caso.

http://www.incobus.com/pruebas/archivos.rar


dentro del BarCodeReader.dll esta la function. LeeCodigoBarras()

Ahora tengo esto ..

static nHandle

Function Lector()
* Public oCedulatext := ""C:\proyectos\listbox\Bin\lecturas\lectura1.bin")
Public oCedulatext := "C:\proyectos\listbox\Bin\lecturas\lectura1.bin"

nHandle := Loadlibrary("BarCodeReader.dll")

aqui es com la uso, es la unica function ke existe dentro de la .dll

msginfo(LeeCodigoBarras(oCedulatext))

FreeLibrary(nHandle)

return nil
*======================================================================
DLL FUNCTION LeeCodigoBarras(oCedulatext AS LPSTR) AS LPSTR LIB nHandle

Me da Una error
Microsoft Visual C++ Runtime Library
RunTime Error ¡¡
User avatar
busmatic
 
Posts: 51
Joined: Fri Jun 30, 2006 6:56 pm

Postby Antonio Linares » Mon Sep 01, 2008 6:04 pm

Has quitado la claúsula PASCAL.

Es necesaria ó se desalineará la pila (el stack) del procesador y por esa razón se produce el error de runtime.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Antonio Linares tampoco hay algo.

Postby busmatic » Mon Sep 01, 2008 8:18 pm

Function Lector()

* Public oCedulatext := MEMOREAD("C:\proyectos\listbox\Bin\lecturas\lectura1.bin")

http://www.incobus.com/pruebas/archivos.rar
** haber sbaja los archivos y pruebas y mcuentas

Public oCedulatext := "C:\proyectos\listbox\Bin\lecturas\lectura1.bin"

nHandle := Loadlibrary("BarCodeReader.dll")

msginfo(LeeCodigoBarras(oCedulatext))

FreeLibrary(nHandle)

return nil
*======================================================================


DLL FUNCTION LeeCodigoBarras(@oCedulatext AS LPSTR) AS LPSTR PASCAL LIB nHandle

EL mismo error ocurre, no cambia nada con Pascal o si en el mismo

ERROR

Microsoft Visual C++ Runtime Library
RunTime Error ¡¡
User avatar
busmatic
 
Posts: 51
Joined: Fri Jun 30, 2006 6:56 pm

Antonio Linares , va de nuevo y mas claro.

Postby busmatic » Mon Sep 01, 2008 8:33 pm

Estimado Antonio Linares

Te explico, Esta dll toma una informacion que encriptada en el .bin que te envie.

http://www.incobus.com/pruebas/archivos.rar

He enviado los dll y los bin , puede descargarlos del linK arriba.


La informacion descencripta y me retorna la informacion en un string separado por comas.


Se supone que es muy simple segun la parte que desarrollo la dll, cosa que llevo ya 15 dias peliando dia y noche y no encuentro manera.
Este dll cuenta con una librería denominada "BarCodeReader.dll" desarrollada en c++, la cual cuenta con una unica funcion publica "LeeCodigoBarras" que recibe como argumento la ruta de un archivo de texto, y retorna datos demográficos contenidos en la cédula de
identidad separados por comas(,). El archivo de texto debe contener
la lectura binaria de los 700 bytes contenidos en el código PDF417 que compone la cédula de identidad.

He probado de todas maneras, formas , pero veo que no , seria posible tratar de hacer un pequeña aplicacion en C y talvez aplicarla en fivewin XH y provar..


Agradecieria cualquier ayuda esto esta fuera de mi alcanze.

ya le puse Pascal y no funciono da mismo error
/***********************************************
#include "fivewin.ch"
#include "dll.ch"
#include "Constant.ch"

static nHandle

Function Lector()

* Public oCedulatext := ""C:\proyectos\listbox\Bin\lecturas\lectura1.bin")

Public oCedulatext := "C:\proyectos\listbox\Bin\lecturas\lectura1.bin"

nHandle := Loadlibrary("BarCodeReader.dll")


?? LeeCodigoBarras(oCedulatext)

FreeLibrary(nHandle)

return nil

DLL FUNCTION LeeCodigoBarras(oCedulatext AS LPSTR) AS LPSTR PASCAL LIB nHandle

Error que dice es

MICROSOFT VISUAL C++ RUNTIME LIBRARY
RUNTIME ERROR ¡¡¡
Cual ayuda agradecieria.

Garcias desde ya.
User avatar
busmatic
 
Posts: 51
Joined: Fri Jun 30, 2006 6:56 pm

Postby Antonio Linares » Mon Sep 01, 2008 10:21 pm

Solo por asegurarnos, has comprobado la existencia del fichero ?

MsgInfo( File( oCedulatext ) )

Puede parecer una tonteria, pero en esas tonterias se esconden los bugs :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Mon Sep 01, 2008 10:23 pm

Comprueba tambien que la DLL se cargue bien:

MsgInfo( nHandle )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Mon Sep 01, 2008 10:24 pm

Y por último, como tu mismo has comentado, habria que probar la función en C directamente, para asegurarnos de que no haya algún error en alguna parte.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Mon Sep 01, 2008 11:06 pm

He probado la función desde C y falla igualmente (GPF), y leyendo lo que comentas observo esto:

"El archivo de texto debe contener la lectura binaria de los 700 bytes"

Como se explica que tu fichero lectura1.bin mida 291 bytes ???

Imagino que por eso da el GPF
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41408
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 37 guests