Seite 1 von 1
Frage zu CompilerIF
Verfasst: 19.11.2004 14:53
von pvmichael
Hallo!
ich hab da mal eine Frage. Angenommen ich habe folgenden Code:
Code: Alles auswählen
#x = #True
Procedure wichtige_funktion()
debug "wichtige funktion!"
EndProcedure
debug "test"
CompilerIF #x = #False
wichtige_funktion()
CompilerEndIf
Ist dann im kompilierten ausführbaren Programm die Funktion wichtige_funktion() mit enthalten, oder nicht?
Wäre es sinnvoller das so zu machen?
Code: Alles auswählen
#x = #True
CompilerIF #x = #False
Procedure wichtige_funktion()
debug "wichtige funktion!"
EndProcedure
CompilerElse
Procedure wichtige_funktion()
debug "wichtige funktion ist nicht verfügbar!"
EndProcedure
CompilerEndIf
debug "test"
wichtige_funktion()
Grüsse
Michael
EDIT: Code auf Konstanten umgeschrieben...
EDITPS: Ich wollte eigentlich nur aufs Prinzip hinaus, und nicht auf Fehler im Code...
Verfasst: 19.11.2004 15:13
von bobobo
sinnvoll ist das was geht .. und das geht alles nicht
Compilerif verlangt Konstanten und keine Variablen ..
Ansonsten braucht man sich um Optimierungen an der Stelle keine Gedanken zu machen weil man ja nicht ständig kompiliert
Verfasst: 19.11.2004 15:50
von pvmichael
bobobo hat geschrieben:sinnvoll ist das was geht .. und das geht alles nicht
Compilerif verlangt Konstanten und keine Variablen ..
Hab den Code jetzt mit Konstanten versehen, damit er "geht"...
bobobo hat geschrieben:
Ansonsten braucht man sich um Optimierungen an der Stelle keine Gedanken zu machen weil man ja nicht ständig kompiliert
Mir gehts da weniger um Optimierungen, sondern eher darum, ob eine Funktion, die im Programm gar nicht verwendet wird (wegen CompilerIF), überhaupt im Endkompilat vorhanden ist, oder nicht. Die Antwort ist für mich deshalb wichtig, weil ich eine Demoversion und eine Vollversion machen möchte, und da möchte ungern, dass ein Cracker einfach die Demoversion so verändert, dass die vorhandenen (aber nicht genutzten) Funktionen doch verwendet werden. Leider bin ich selber nicht so toll, dass ich mir das Programm im HEX-Editor ansehe, und dann weiß, ob die Funktion drin ist, oder nicht. Deshalb meine Frage ans Forum

Verfasst: 19.11.2004 16:01
von freedimension
Ganz kurz: Ja, ist in der Exe enthalten. Also immer schön mit den Compilerdirektiven arbeiten

Verfasst: 19.11.2004 16:34
von pvmichael
Danke, das wollte ich wissen.
Ich hatte dennoch gehofft, das der Compiler vielleicht so intelligent ist, und nicht verwendete Funktionen einfach weglässt.
Verfasst: 19.11.2004 20:00
von GPI
Übrigends macht das Cutter-Plugin von jaPBe genau das...
Verfasst: 19.11.2004 20:15
von pvmichael
@GPI: Danke für den Hinweis, ich glaube da gibts noch eine Menge im jaPBe zu erforschen
BTW: Vielleicht eine dumme Frage, aber gibts irgendwo eine Dokumentation zu den Tools? In der Hilfe zu jaPBe hab ich nichts gefunden...
Verfasst: 19.11.2004 21:29
von GPI
bis jetzt nicht. Aber die anleitung ist eh schon sehr outdated...
Verfasst: 20.11.2004 03:34
von nicolaus
GPI hat geschrieben:Übrigends macht das Cutter-Plugin von jaPBe genau das...
@GPI
is auch ein geniales plugin doch verwende ich das nur sehr selten denn einwas gefällt mir daran nich und das ist das da auch alle einrückungen weg genommen werden und wenn ich dann nach ewigen zeiten mal wieder am code was ändern will sehe ich da erstmal nich richtig durch.
WWäre vieleicht ne idee das man da ne art optionswindow bekommt wo man einstellen kann was alles gecuttet werden soll.
MfG Nico
Verfasst: 20.11.2004 10:58
von GPI
nicolaus hat geschrieben:GPI hat geschrieben:Übrigends macht das Cutter-Plugin von jaPBe genau das...
@GPI
is auch ein geniales plugin doch verwende ich das nur sehr selten denn einwas gefällt mir daran nich und das ist das da auch alle einrückungen weg genommen werden und wenn ich dann nach ewigen zeiten mal wieder am code was ändern will sehe ich da erstmal nich richtig durch.
WWäre vieleicht ne idee das man da ne art optionswindow bekommt wo man einstellen kann was alles gecuttet werden soll.
MfG Nico
Es ist ja eigentlich auch so gedacht, das man mit den normalen Code arbeitet und dann, bevor man die finale EXE erzeugt, den Cutter drüberlaufen läßt und mit diesen Code die Exe erzeugt. Zur weiteren bearbeitung ist da eigentlich nichts gedacht.
Da fällt mir gerade noch ein: Cutter ignoriert alle Konstanten und somit auch die CompilerIF-Anweisungen... Sorry - mein Fehler.
p.s.: Alles Makieren und in Bearbeiten>automatisch einrücken...