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.