Pregunta

Tengo un objeto COM, ajustes / crear / trabajo de un módulo de datos.

creación / ejecución / liberar el módulo de datos desde una aplicación funciona con una emisión.

pero poniendo el módulo de datos en un archivo DLL funciona bien la primera vez, runing el objeto COM, etc .. pero después de unas cuantas llamadas a cabo reiniciar la aplicación, esto parece de error.

imagen Mensaje de error http://darkaxi0m.name/so/errormessage.GIF

Hay un poco de tarifas de código en la aplicación, así que no puedo publicar todo, He tratado MadExcept tanto en la aplicación y DLL, sin suerte. Ya rompe el IDE en un punto que no parece de mucha ayuda ...

alt text http://darkaxi0m.name/so/cpubreak.gif

este es el código que se encarga de la DataModule, la misma función se utiliza en la aplicación y la DLL en ambas pruebas

function GetAmount( Amount : integer; var Info: PChar): integer; stdcall;
 var
  tempInfo: string;
   workerDM : TworkerDM;
 begin
  Result := 0;    
  workerDM := TworkerDM.Create(nil);
    try      
      tempInfo:= Info;
      Result := workerDM.GetAmount(Amount, tempInfo);
      StrPCopy(Info, tempInfo);
    finally
      workerDM.Free;
    end;
 end;

Me gustaría echarle la culpa al objeto OLE, pero funciona muy bien fuera de la DLL

Estoy en una pérdida para siquiera pensar dónde empezar a buscar.

¿Fue útil?

Solución 2

No creo que esta pregunta puede responderse más. El proyecto ha ser raspada, y el objeto que producen el error ya no se utiliza.

Mi Eliminar Las solicitudes no han recibido respuesta.

Así que ahora es mi respuesta.

Otros consejos

En el finally, que está llamando Free, pero debe llamar workerDM.Free.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top