![]() |
Re: Funktion erstellen
Also deine von oben sicher net, die Resourcenschutzblöcke müssen rein!
|
Re: Funktion erstellen
Dann erzähl mir mal, wo hier ein Fehler auftreten soll, der s1.free überspringt?
Delphi-Quellcode:
Weil:
function TForm1.CreateAutorunFile(app, icon, destfile: String): boolean;
var sl: TStringList; begin result:=true; sl:=TStringList.create; sl.add('[autorun]'); sl.add('OPEN='+app); sl.add('ICON='+icon); if copy(destfile, length(destfile)-4, 4)<>'.inf' then destfile:=destfile+'.inf'; try sl.SaveToFile(destfile); except result:=false; end; sl.free; end;
Delphi-Quellcode:
Hier KANN nichts passieren und das Schreiben ist schon durch ein try abgesichert...
result:=true;
sl:=TStringList.create; sl.add('[autorun]'); sl.add('OPEN=' + app); sl.add('ICON=' + icon); if copy(destfile, length(destfile) - 4, 4) <> '.inf' then destfile := destfile + '.inf'; |
Re: Funktion erstellen
Es ist immer so, dass man die Dinge, die man ganz sicher freigeben möchte in einen finally-Abschnitt gibt.
Ob du nun mit der Registry arbeitest oder mit Inis, oder auch mit Stringlists... |
Re: Funktion erstellen
Es ist ja schön, dass du das machst, aber in diesem Fall ist es einfach UNNÖTIG!
|
Re: Funktion erstellen
Nein
|
Re: Funktion erstellen
Dann erzähl mir, wie du es schaffen willst, diese Funktion zum crashen zu bringen... Da bin ich ja mal gespannt...
|
Re: Funktion erstellen
Zitat:
im Normallfall dürfte es bei einem TStringList.Add() keine Schwierigkeiten geben. Aber: Sollte es mal zu irgendwelchen Störungen im System kommen (defekter Speicher, Speicher voll, etc...). Dann wird diese Operation IMHO eventuell eine Zugriffsverletzung (oder Ähnliches) auslösen und somit sollte es allein schon sicherheitshalber komplett vom try...finally umschlossen werden. Man hat dann (fast) die absolute Sicherheit und ein mehraufwand ist es auch nicht ;) mfG mirage228 |
Re: Funktion erstellen
Da braucht nur nen Schreibfehler im Speicher auftreten oder ein anderes Programm greift unerwartet auf die Speicheradresse zu, was bei mir schon vorkam...
|
Re: Funktion erstellen
Na ihr könnt Zufälle absichern, die gibt es gar nicht ;)
|
Re: Funktion erstellen
Es ist auf jedenfall ratsam, Resourcenschutzblöcke zu verwenden. Wie der Name schon sagt, sollen diese die Resourcen, sprich den Speicher, schützen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 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-2025 by Thomas Breitkreuz