Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-07-2007
MON___ MON___ is offline
Miembro
 
Registrado: abr 2007
Ubicación: Salamanca (España)
Posts: 84
Poder: 20
MON___ Va por buen camino
Gracias, "chackAll" por la respuesta. Desgraciadamente me sigue dando el mismo error (EAccessViolation); ¿cuál es la segunda posibilidad?
Gracias de nuevo por tu respuesta.
Responder Con Cita
  #2  
Antiguo 30-07-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Vaya, en ves de string; declara ShortString o PChar en la librería y en el proyecto que lo llama (en el proyecto original)...

Cita:
Empezado por Delphi
To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters.


Si ésto no dá aconsejo subas parte del cógido (mínimo funcional) para corregirlo.
Responder Con Cita
  #3  
Antiguo 30-07-2007
MON___ MON___ is offline
Miembro
 
Registrado: abr 2007
Ubicación: Salamanca (España)
Posts: 84
Poder: 20
MON___ Va por buen camino
Gracias de nuevo, CheckAll. No creo que sea un problema de tipos (string, pchar).
He depurado paso a paso el código y he inspecionado las variables. El error (EAccessViolation) se produce en "FreeLibrary"

procedure TForm1.SpeedButton1Click(Sender: TObject);
type
TLlamarDLL = function(var s : string; x : integer; si : boolean): boolean;
var
buffer : string;
DLL : HWND;
LlamarDLL : TLlamarDLL;
begin
buffer := '';
DLL := LoadLibrary('monlib.dll');
try
@LlamarDLL := GetProcAddress(DLL, 'buscarValor');
if @LlamarDLL <> nil then
if llamarDLL(buffer, 30, false) then
edit1.text := buffer;
finally
FreeLibrary(DLL);
end;

end;
Responder Con Cita
  #4  
Antiguo 30-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Prueba cambiando el tipo de la variable DLL.

DLL : HWND; -----> DLL : THandle;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 30-07-2007
MON___ MON___ is offline
Miembro
 
Registrado: abr 2007
Ubicación: Salamanca (España)
Posts: 84
Poder: 20
MON___ Va por buen camino
Gracias de nuevo. Lo he hecho de las dos formas (THandle / HWND); ahora he estado probando con la directiva "stdcall" y sin ella, pero sigue dándome error.
Responder Con Cita
  #6  
Antiguo 30-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Hiciste lo que te comentó cHackAll respecto del tipo de datos string? No es opcional. Si usas strings sin recurrir a BORLNDMM.DLL, la dll va a fallar sí o sí. Además, aunque no aseguro que sea la causa, un string no es sino un apuntador cuya memoria se maneja dinámicamente, y como tal, no sería de extrañar que los errores sólo se manifiesten al intentar liberar recursos, como lo hace FreeLibrary.

// Saludos
Responder Con Cita
  #7  
Antiguo 30-07-2007
MON___ MON___ is offline
Miembro
 
Registrado: abr 2007
Ubicación: Salamanca (España)
Posts: 84
Poder: 20
MON___ Va por buen camino
¡Gracias a los dos! ¡Tenéis razón! He cambiado STRING por PCHAR y no se produce el error al liberar la librería (FreeLibrary).
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
Error Abstract Error y Access violation zvf OOP 33 08-09-2010 18:50:33
'DBX Error: No Mapping for Error Code Found' CHECHE81 Conexión con bases de datos 1 09-06-2010 02:11:35
Error 10093 al ver un informe - Que error es este? URBANO Impresión 1 03-02-2006 18:44:39
¿Por qué me da este error?Error creating cursor manejador nuri SQL 2 01-08-2005 17:30:28
Error: RichEdit line insertation error DarkByte Varios 3 19-07-2004 12:28:09


La franja horaria es GMT +2. Ahora son las 05:22:04.


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