Autor Beitrag
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: So 30.12.12 22:38 
Hallo,

ich habe es schon öfter bei Fremdunits erlebt, dass beim Kompilieren der komplette Dateipfad der entsprechenden Unit in der exe gespeichert wird (u.a. z.B. bei den Tnt-Unicode-Controls). Gibt es einen Schalter mit dem man das Speichern dieses Pfades in der exe aktivieren/deaktivieren kann? Welchen Sinn macht es überhaupt, dass der komplette Pfad gespeichert wird?

Viele Grüße
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 30.12.12 22:59 
Hallo,
das Speichern des kompletten Pfads dieser Unit wird durch den Befehl Assert() ausgelöst.
Entfernst Du alle Assert (so weit Du das verantworten kannst), verschwindet auch der Unit-Pfad.
Du kannst natürlich auch in den Compiler-Optionen "Assertion" ausschalten.

Beste Grüße
Mathematiker

Nachtrag: Ich habe in einer eigenen Unit, die nichts macht als eine Info anzeigen,
ausblenden Delphi-Quelltext
1:
assert(x=0,'sinnlos');					

eingefügt und schon befindet sich in der Exe der ganze Unit-Pfad.

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: rushifell
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: So 30.12.12 23:26 
Danke! Genau das wars :-)
Wofür wird denn Assert genau benötigt, zum Debuggen?

Zitat:
Since assertions are not usually used in final product version, Delphi compiler includes directives to disable the generation of assertion code:

$ASSERTIONS ON/OFF (long form)

So geht es noch einfacher:

ausblenden Delphi-Quelltext
1:
2:
3:
Unit ...;

{$ASSERTIONS OFF}


Gruß
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 30.12.12 23:30 
Hallo,
user profile iconrushifell hat folgendes geschrieben Zum zitierten Posting springen:
Wofür wird denn Assert genau benötigt, zum Debuggen?

Relativ gut beschrieben ist es unter de.wikipedia.org/wik...sertion_(Informatik).

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Mo 31.12.12 15:20 
Mathematiker hat folgendes geschrieben:
Entfernst Du alle Assert (so weit Du das verantworten kannst), verschwindet auch der Unit-Pfad.

Bzgl. dem "so weit Du das verantworten kannst": Im Grunde dürfe eigentlich nichts weiter passieren, wenn ich die Assertions einfach deaktiviere. Die Assertion zeigt eine spezifische Fehlermeldung, ohne Assertion wird eine unspezifische Fehlermeldung angezeigt, oder das Programm hängt sich auf. Die Wahrscheinlichkeit, dass bei einer Assertion ein Fehler auftritt, sollte sowieso sehr gering sein:
wikipidia hat folgendes geschrieben:
Fehlerbehandlungen sollten für Fehlerzustände geschrieben werden, welche man erwartet; Zusicherungen für Fehlerzustände die niemals auftreten sollten.
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 31.12.12 15:27 
user profile iconrushifell hat folgendes geschrieben Zum zitierten Posting springen:
Im Grunde dürfe eigentlich nichts weiter passieren, wenn ich die Assertions einfach deaktiviere.

Da wird auch nichts geschehen.
Meine Bemerkung zielte auf Fremdunits ab. Entfernst Du dort Teile, und seien es nur Assertions, und Du gibst evtl. die Quellen weiter, dann setzt es gegebenenfalls (berechtigterweise) "Hiebe" vom Urheber.
Hatte ich hier schon in der EE. :oops:

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Mo 31.12.12 15:53 
Mathematiker hat folgendes geschrieben:
Meine Bemerkung zielte auf Fremdunits ab. Entfernst Du dort Teile, und seien es nur Assertions, und Du gibst evtl. die Quellen weiter, dann setzt es gegebenenfalls (berechtigterweise) "Hiebe" vom Urheber.

Ach, so hast Du das gemeint. Keine Sorge, da bin ich vorsichtig und achte auf die Lizenz. Die Unit, die ich verwende steht übrigens unter der Mozilla Public License 1.1. Unter dieser Lizenz darf ich den Quellcode ändern. Grundsätzlich würde ich jedoch nie eine modifizierte Unit ohne das Original weitergeben und außerdem immer darauf hinweisen, was ich geändert habe.

Viele Grüße