Página 1 de 2
Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 8:54 am
por masrmty
Hace poco compre la seccion donde viene la adenda.
Al momento de compilar el programa compila bien, pero al momento de correrlo en el boton de Crear el cfd me marca un error que dice:
Acces violation en el modulo 'libeay32.dll'.
Alguna idea de porque marca eso.
Saludos y gracias por cualquier ayuda de antemano.
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 9:05 am
por Dado
masrmty escribió:Hace poco compre la seccion donde viene la adenda.
Al momento de compilar el programa compila bien, pero al momento de correrlo en el boton de Crear el cfd me marca un error que dice:
Acces violation en el modulo 'libeay32.dll'.
Alguna idea de porque marca eso.
Saludos y gracias por cualquier ayuda de antemano.
Movi tu tema aqui a "Programacion Delphi" ya que es mas indicado para este asunto.
Tengo varias preguntas.
1. Al descomprimir la rutina que te envie y SIN MOVERLE NADA solo clic en Paso 1 - Paso 2 - Paso 3 - Crear CFD si te genera bien la factura?
2. Que version de Windows tienes, no olvider especificar version, sub version, proceso como en "Windows Vista Ultimate a 32 bits", esto va encaminado a que posiblemente necesites el "libeay64.dll" en caso que tu windows sea de 64 bits.
3. Puedes depurar e indicarme exactamente en que linea "truena"
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 12:04 pm
por masrmty
1. Al descomprimir la rutina que te envie y SIN MOVERLE NADA solo clic en Paso 1 - Paso 2 - Paso 3 - Crear CFD si te genera bien la factura?
R=No genera nada, marca ese error.
2. Que version de Windows tienes, no olvider especificar version, sub version, proceso como en "Windows Vista Ultimate a 32 bits", esto va encaminado a que posiblemente necesites el "libeay64.dll" en caso que tu windows sea de 64 bits.
R=Windows 2008 32 bytes
Versión 6.0.6001 Service Pack 1 Compilación 6001
3. Puedes depurar e indicarme exactamente en que linea "truena"
La linea donde truena es:
dentro de esta funcion : function CalculaSello(llaveprivada,cadenaoriginal: string; Hash:THash): string;
En la linea: EVP_SignFinal(@mdctx,@outbuf,Len,key);
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 1:24 pm
por Dado
masrmty escribió:1. Al descomprimir la rutina que te envie y SIN MOVERLE NADA solo clic en Paso 1 - Paso 2 - Paso 3 - Crear CFD si te genera bien la factura?
R=No genera nada, marca ese error.
2. Que version de Windows tienes, no olvider especificar version, sub version, proceso como en "Windows Vista Ultimate a 32 bits", esto va encaminado a que posiblemente necesites el "libeay64.dll" en caso que tu windows sea de 64 bits.
R=Windows 2008 32 bytes
Versión 6.0.6001 Service Pack 1 Compilación 6001
3. Puedes depurar e indicarme exactamente en que linea "truena"
La linea donde truena es:
dentro de esta funcion : function CalculaSello(llaveprivada,cadenaoriginal: string; Hash:THash): string;
En la linea: EVP_SignFinal(@mdctx,@outbuf,Len,key);
Pues ya le busque y no encontre algun motivo, incluso busque openssl+windows 2008 para ver si habia problemas de compatibilidad.
Algo que me tiene con la duda, revise tus mensajes y tengo entendido que tienes las "version basica" de las rutinas y despues compraste la addenda, cierto?
Bueno, las rutinas basicas si te funcionan bien?, porque practicamente son lo mismo excepto por la unidad addenda_intf.pas
Tambien esta muy raro que si hay llamadas a la libreria antes de la linea en donde marca error, significa que si reconoce bien la libreria libeay32.dll
Entonces lo que sigue es que me confirmes si la "version basica" que tienes si funciona en ese mismo ambiente de trabajo
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 1:36 pm
por masrmty
Si la version basica si funciona perfectamente en el mismo ambiente de trabajo.
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 1:51 pm
por Dado
masrmty escribió:Si la version basica si funciona perfectamente en el mismo ambiente de trabajo.
Que raro, bueno pero por lo menos lo basico si funciona
Puedes hacer esto: en tu "version basica" e incluso en tu desarrollo final haz lo siguiente :
Copia los archivos Addenda_x_obj.dfm Addenda_x_obj.pas y Addenda_x_intf.pas (x="amece" "soriana" "amis" etc)
Ponle en tu clausula USES Addenda_x_obj
Genera tu CFD "como si nada" normalito y al final cuando quieras pegarle la addenda solo tienes que llamar a dos procedimientos :
Addenda_x_Form.ShowModal; //Formulario para pedir datos adicionales que debe llevar la addenda
Addenda_x_Form.GeneraAddenda; //Genera y "pega" la addenda
Y listo, eso es todo, ya tu CFD tiene addenda.
Me avisas si con esto se resuelve tu problema.
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 2:45 pm
por masrmty
Ya se resolvio el problema, algo que no habia comentado es que estoy compilando con delphi 10, y me acorde que el sistema basico hay que cambiarle algo de los char por ansichar, paso las lineas que cambie por si alguien mas le sirve:
es en la unidad sello.pas
En esta linea tenia string cambie por AnsiString
function ReadPrivateKey(AFileName: Ansistring): pEVP_PKEY;
Las 2 lineas de abao tenia char y cambie por ansichar
function CalculaSello(llaveprivada,cadenaoriginal: string): string;
var inbuf: array [0..8192] of ansichar;
outbuf: array [0..1024] of ansichar;
Saludos.
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 5:16 pm
por EJSG
Conforme instalo mi aplicación en mas máquinas, he encontrado que en algunas marca este mismo error, sin utilizar addenda, con los fuentes originales. Buscando encontré que que si la maquina no tiene el service pack 3, falla. Ahorita tengo una maquina que acabo de actualizar al SP3 y continua el error. Si le encuentro, les comento... si alguien tiene alguna idea, please compartanla. Saludos.
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 6:22 pm
por Dado
EJSG escribió:Conforme instalo mi aplicación en mas máquinas, he encontrado que en algunas marca este mismo error, sin utilizar addenda, con los fuentes originales. Buscando encontré que que si la maquina no tiene el service pack 3, falla. Ahorita tengo una maquina que acabo de actualizar al SP3 y continua el error. Si le encuentro, les comento... si alguien tiene alguna idea, please compartanla. Saludos.
Talvez lo ideal seria instalar todo el OpenSSL y no solo depender del DLL que viene en las rutinas
Pero es importante que si se instala todo el OpenSSL SE DEBE BORRAR del directorio de la aplicacion el archivo libeay32.dll para que tome el de la instalacion completa
Re: Error en libeay32.dll programa con Adenda
Publicado: Mié Dic 15, 2010 6:41 pm
por EJSG
dado escribió:
Talvez lo ideal seria instalar todo el OpenSSL y no solo depender del DLL que viene en las rutinas
Pero es importante que si se instala todo el OpenSSL SE DEBE BORRAR del directorio de la aplicacion el archivo libeay32.dll para que tome el de la instalacion completa
Dado, nuevamente gracias por tu pronta respuesta. Me puedes decir por favor como le hago para instalarlo? Vi que alguien menciono que habia una nueva version del OpenSSL y vi que se puede descargar de algun sitio e instalar, pero como la verdad es que estoy copiando las dlls y el exe que acompañaban al FaturaE cuando lo instalo, no realizo ninguna instalacion de software alguno. Que me recomiendas entonces hacer? Lo bajo y lo instalo, pero, seria conveniente instalar otros paquetes, borrar lo que venian con FacturaE (libeay32.dll, openssl.exe y ssleay32.dll), etc... muchas gracias.