(PB) Mehrere Varianten eines Programms programmieren

Hier kannst du häufig gestellte Fragen/Antworten und Tutorials lesen und schreiben.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

(PB) Mehrere Varianten eines Programms programmieren

Beitrag von Danilo »

freedimension hat geschrieben:Für alle die, wo sich schon immer gefragt haben wozu man die
Compiler Direktiven eigentlich braucht hier ein Beispiel.

Irgendwann kommt jeder Programmierer mal in die Verlegenheit,
mehrere Varianten eines Programmes erstellen zu müssen, z.B.
eine Demo-, Light- und Vollversion (der Fantaisie sind hier
keine Grenzen gesetzt).

Dies kann man natürlich sehr umständlich machen indem man
für jede Variante ein eigenes Projekt anlegt. Das hat aber den
Nachteil, dass man alles doppelt und dreifach machen muss,
der Code ist also sehr schwer pflegbar.

Benutzt man jedoch die CompilerDirektiven, z.B.
CompilerIf ... CompilerElse ... CompilerEndif,
hat man ein sehr mächtiges Werkzeug zur Hand.

Einfach eine Konstante deklarieren, z.B. [c]#IsDemoVersion = 1[/c]
und dann mit [c]CompilerIf #IsDemoVersion[/c] abfragen.
Beispiel:

Code: Alles auswählen

#IsDemoVersion = 1
CompilerIf #IsDemoVersion
  a = 23
CompilerElse
  a = 42
CompilerEndif
Der Variablen a wird der Wert 23 zugewiesen, die andere Zuweisung (a=42)
wird gar nicht mehr mitcompiliert und findet sich demnach auch nicht in der EXE wieder.
Das ist nicht nur platzsparend, es verhindert auch, das findige Cracker
deaktivierten Code unerlaubt wieder "freischalten" (0x0=0).

Ich benutze das auch gerne, um mir das Programmieren etwas zu
erleichtern, so deklariere ich eine Konstante namens #IsFinalBuild.
Zeitkritische oder nervende, nicht benötigte Programmroutinen,
blende ich so während der Entwicklung einfach aus.

CleanCoding
Mirko

P.S.: Zwischendurch immer mal wieder alle Varianten durchtesten,
es können immer wieder mal irgendwelche Nebenwirkungen auftreten,
an die man nicht gedacht hat.