Einzelnen Beitrag anzeigen

jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#15

AW: Wie ein array of record von C# dll mit COM an Delphi übergeben?

  Alt 8. Jun 2023, 20:57
ok, bin jetzt einen kleinen Schritt weiter. Meine Vermutung ist, dass die Referenzzählung in Verbindung mit der C# DLL bei mir Probleme macht. Darum wäre meine Quick&Dirty Lösung, dass ich direkt beim Beenden der Methode in den Referenzzähler reinpfusche:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  TransportList: ITransportListIntf;
  MediaList: TMediaArray;
  i, j: Integer;
begin
  TransportList := TTransportList.Create;
  try
    getMediaList( TransportList ); // <--- hier wird die C# DLL Methode aufgerufen
    TransportList.getList( MediaList );
  finally
    if TransportList <> nil then
    begin
      j := TransportList._AddRef;
      for i := j downto 2 do TransportList._Release; //<----- setze manuell den Referenzzähler
    end;
  end;
end;
Damit gibt es nun keine Meldung von Fastmm, dass es einen Speicherleck gibt. Meine Frage an die Experten: Ist es total verwerflich, was ich da mache? Und gibt es da einen besseren Weg?

Geändert von jus ( 8. Jun 2023 um 21:08 Uhr)
  Mit Zitat antworten Zitat