![]() |
Delphi 7 DLL in C# verwenden, Out of Memory Exception
Hallo liebe Community,
ich habe folgendes Problem: Ich nutze für das verschlüsseln und entschlüsseln von Strings die Funktionen von einer Delphi Anwendung. Hier der Delphi Code:
Code:
Wenn ich Delphi Funktion via C# aufrufe:
function Crypt(Input: string; Phrase: string): string;
var Cipher: TDCP_blowfish; str: string; begin str := ''; Cipher := TDCP_blowfish.Create(nil); Cipher.InitStr(Phrase); Cipher.Reset; Cipher.Burn; Result := Input; end; Func("test", out pOut, 1), bekomme ich eine Out Of Memory Exception zurück.. Nun sind wir schon bei meiner Frage: Wie kann ich auch ein FreeMem ausführen bei der TCDP_Blowfish ver / Entschlüsselung? Bzw. wenn ich die Funktion Crypt ausführe, füllt sich der Speicher wieder. Was kann ich dagegen tun? Was muss ich in Delphi anders schreiben? Ziel sollte es sein das mir die Anwendung nicht immer meinen RAM füllt, und sich dann via System.OutOfMemoryException beendet... Habe erst heute den gesamten Delphi Quelltext wie auf ![]() Leider bin ich ein blutiger Anfänger. Ich bedanke mich schon einmal vorweg. Vielen Dank |
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Hallo,
Cipher.Free fehlt. Heiko |
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Du solltest die Speicherverwaltung so umsetzen wie es üblich ist, auch in der Windows API:
Du übergibst einen Pointer auf bereits reservierten Speicher an die DLL plus die reservierte Größe, diese füllt ihn und du gibst den Speicher im Hostprogramm auch wieder frei. Wenn ein zu kleiner Puffer übergeben wurde, muss die Funktion einen entsprechenden Fehler und die benötigte Puffergröße zurückliefern. Ein Beispiel ist zum Beispiel die Funktion GetPrinter: ![]() |
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Hallo Leute,
danke für eure antworten! @Heiko: danke, mit dem Befehl Chiper.Free; wurde mein Problem behoben! Danke und lg iceget |
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Moin...:P
Zitat:
|
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Hi,
Was meinst du damit? Try, Catch, Finally? Danke und LG. Wie gesagt, bin leider Delphi Anfänger |
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Ja try..finally. Normalerweise schützt man in Delphi jede Resource in der Form:
Delphi-Quellcode:
var
X: TObject; begin X := TObject.Create; try X.Work(); finally X.Free; end; end; |
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Alles klar, werde ich noch einbauen!
Danke und lg |
AW: Delphi 7 DLL in C# verwenden, Out of Memory Exception
Moin...:P
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz