Ver Mensaje Individual
  #1  
Antiguo 22-10-2003
ogorut ogorut is offline
Miembro
 
Registrado: may 2003
Posts: 21
Reputación: 0
ogorut Va por buen camino
Problema con DLL

Estoy intentando crear una DLL y me da un error que no siempre me pasa.
El caso es que yo he creado mi DLL con una serie de funciones declaradas con la estructura:

{
function nombre_funcion(parametros):tipo_resultado; stdcall;

implementation

function nombre_funcion(parametros):tipo_resultado; stdcall;
begin
...
operaciones
...
result := resultado;
end;
}

mas o menos.

En el programa creo un tipo (type) que hacen referencia a las funciones de la DLL:

type
Tnombre_funcion = function(parametros):tipo_resultado; stdcall;
private
nombre_funcion = Tnombre_funcion;
public
end;

var HandleDLL : THandle;

Bien pues ahora al ejecutar el programa vinculo mi variable "nombre_funcion" a la funcion de la DLL:

HandleDLL:=LoadLibrary(PChar('ruta'+'\DllKeyGenerator.dll'));
{ Punteros a la direccion de la DLL }
@nombre_funcion:=GetProcAddres(HandleDLL, 'nombre_funcion');

Pues ahora solo falta hacer la llamada a la DLL.
Una de las funciones me devuelve un String y en realidad me devuelve el resultado correcto pero junto con un error :

"INVALID POINTER OPERATION"

Alguien sabe porque puede sucederme???

Tengo que añadir que a veces no da el error y que si intento llamar muchas veces seguidas a la funcion, me da un error que me cierra la aplicacion.

Espero que no sea una charla muy larga...
Responder Con Cita