Domanda

Ho un oggetto COM, setup / creare / lavorando da un DataModule.

la creazione / corsa / liberare la datamodule da un'applicazione funziona con fuori un problema.

, ma mettere il datamodule in una DLL funziona bene la prima volta, runing l'oggetto COM, ecc .. ma dopo un paio di telefonate con fuori riavviare l'applicazione, questo sembra di errore.

immagine Messaggio di errore http://darkaxi0m.name/so/errormessage.GIF

C'è un po 'tariffa di codice in App, quindi non posso postare il tutto, Ho provato MadExcept sia nell'applicazione e Dll, senza fortuna. The Breaks IDE in un punto che non sembra molto aiuto ...

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

Questo è il codice che gestisce l'datamodule, la stessa funzione viene utilizzata per l'applicazione e la DLL in entrambe le prove

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;

mi piacerebbe dare la colpa l'oggetto OLE, ma funziona bene fuori della DLL

Sono in perdita per nemmeno pensare da dove cominciare a cercare.

È stato utile?

Soluzione 2

Non credo che questa domanda si può rispondere più. Il progetto è raschiato, e l'oggetto che producono l'errore utilizzato più.

Il mio Elimina Le richieste hanno avuto risposta.

Quindi questo è ora la mia risposta.

Altri suggerimenti

Nel finally, si sta chiamando Free, ma dovrebbe chiamare workerDM.Free.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top