Einzelnen Beitrag anzeigen

Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#1

Ungültige Zeigeroperation

  Alt 15. Mai 2019, 11:58
Hallo zusammen,

ich bekomme eine Fehlermeldung 'Ungültige Zeigeroperation' beim Aufruf des Destructors nach dem schließen der Anwendung.


Delphi-Quellcode:
type
  TCallID = string;

  TCallInstance = class(TObject)
    CallID: String;
    CallFrom: String;
    CallTo: String;
    ChannelID: String;
    CallStart: TDateTime;
    CallEnd: TDateTime;
    CurrentEvent: TCallEvent;
  private
  public
  end;

  TCallInstanceDictionary = class(TObjectDictionary<TCallID,TCallInstance>)
  end;
  TCallInstanceDictionary = class(TObjectDictionary<TCallID,TCallInstance>)
  end;

  Tbc_AsteriskCallDictionaryDataModule = class(TDataModule)
    procedure DataModuleCreate(Sender: TObject);
    procedure DataModuleDestroy(Sender: TObject);
    function AddDictValue(ACallID: String): String;

  private
    { Private-Deklarationen }
    fCallInstanceDictionary: TCallInstanceDictionary;
  public
    { Public-Deklarationen }
  end;

var
  bc_AsteriskCallDictionaryDataModule: Tbc_AsteriskCallDictionaryDataModule;

implementation

procedure Tbc_AsteriskCallDictionaryDataModule.DataModuleCreate(Sender: TObject);
begin
  inherited;

  fCallInstanceDictionary := TCallInstanceDictionary.Create();
end;

procedure Tbc_AsteriskCallDictionaryDataModule.DataModuleDestroy(Sender: TObject);
begin
  inherited;
  fCallInstanceDictionary.Clear;
  fCallInstanceDictionary.free; // Hier Awnedungsfehlermeldung
end;
Ich vermute das ich der Create() funktion noch eigene Variablen von TCallID und TCallInstance übergeben muss aber
ansich funktioniert das Dictionary ohne Probleme.
  Mit Zitat antworten Zitat