Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2018
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Problemas con carga y descarga de una dll

Hola a todos.
Tengo un error de Access Violation que no puedo resolver. El error solo ocurre cuando se carga la dll.
Estoy haciendo algo mal?

Desde ya muchas gracias
Codigo de muestra:

Código Delphi [-]
procedure cierraliquidacion(sender: tobject);
var cCodbar: string; 
     hMod: Thandle;
    GenRapipago: function(nCodempresa: integer; nLegajo: integer; nNroFactura: integer; nVto1: currency; nVto2: currency;  cFecJul_1: string; cFecJul_2: string): string; stdcall;
begin
if Liq000Agente.value <> 0 then // si el agente es > a 0 genera el codigo de barras y cargo la dll
begin
       hMod := loadlibrary('fitasoft2.dll');
end;

if (Liq000Agente.Value = 1) or (Liq000Agente.Value = 3) then
begin
      GenRapiPago := GetProcaddress(hMod, 'GenRapiPago'); // genera codigo de barras, llamo la funcion
end;

Tabla.Open;

// aca hago un do while generando el codigo de barras para cada registro
while not Res041.of do
begin
       cCodbar := '';

       if (Liq000Agente.value = 1) then
       begin
       cCodbar := GenRapiPago(IBLiq000NroEmpAgente.Value, Res041Codfam.Value, nroCompte, Res041Totrecibo.AsCurrency, 
       Res041Totrecibo2.AsCurrency, strFecJul_1, strFecJul_2);
       end;

       Tabla.Edit;
       TablaCodbarra.value := cCodbar;
       Tabla.post;
       Res041.next;
end;

Tabla.close;
Res041.Close;
        
if Liq000Agente.Value > 0 then
begin
       freeLibrary( hMod );
end;

Liq000.close;
showmessage('Proceso terminado'); 
// luego de dar ok al mensaje da el error Acces Violation, solo los que usan el codbar

end; // el debug me marca esta linea
__________________
No te vayas sin irte
Responder Con Cita
  #2  
Antiguo 14-08-2018
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Hay dos posibilidades:
  1. Estás usando un recurso de dentro de la DLL fuera de ella, pudiendo haber una incompatibilidad dentro del marco de memoria (quizá el bloque está marcado como local y por eso no deja usarlo fuera de la DLL, si es que es posible hacer eso en Windows).
  2. O quizá estás liberando un recurso (¿la propia DLL?) antes de tiempo, o intentando acceder a dicho recurso tras su destrucción.
En cualquier caso habrá que ver qué es exactamente lo que provoca la violación de acceso.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 14-08-2018
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Gracias por tu respuesta Ñuño
Seguire investigando

Abrazo
__________________
No te vayas sin irte
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
INFO: DLL's, BPL's, carga dinámica, carga estática y Packages en Runtime Neftali [Germán.Estévez] OOP 26 13-12-2013 20:29:55
Descarga y Carga de un Archivo cacu OOP 2 26-04-2010 15:15:48
descarga de URL jfadelphi HTML, Javascript y otros 1 28-02-2009 16:00:13
problemas con carga de MyODBC voldemmor MySQL 2 17-01-2008 16:30:43
Problemas con carga de transacciones. AMINOA2R Firebird e Interbase 1 18-07-2005 10:52:12


La franja horaria es GMT +2. Ahora son las 19:08:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi