Hilfe zu den Compileroptionen (speziell Konstanten)

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Hilfe zu den Compileroptionen (speziell Konstanten)

Beitrag von AND51 »

Hallo!

Ich wünsche mir mehr Hilfe zu den Compilereinstellungen. Es gibt so viele schöne neue Features, und ich weiß leider mit einigen nichts anzufangen.

Aber auch einen logischen Fehler habe ich entdeckt: Wenn man eine neue PB-Datei anlegt und dort dann über Compiler/Compiler-Optionen in die Registerkarte "Konstanten" geht, gibt es bei "Eigene Konstanten" gleich zwei Knöpfe:
Entfernen und Löschen.
Braucht man beide? Oder ist das ein Übersetzungsfehler?

Zu meinen Fragen, die ich der Einfachheit halber nummeriere:
1.) Wo wir gerade schon bei den Konstanten sind: Wozu gibt es das Feature "Eigene Konstanten". Ich kann mir keinen Reim darauf machen, denn ich kann den vordefinierbaren Konstanten keine Werte zuweisen.

2.) Was ist die Konstante #PB_Editor_CreateExecutable? Eine Konstante, die 1 ist, wenn die EXE über "EXE erstellen" kompiliert wurde? (Bin mir nicht sicher) Wenn ja, warum ist dieses nette Feature nicht standardmäßig aktiviert?

3.) Was bedeuten die "Linder-Optionen-Datei" Einstellungen?

4.) Wann/wo gibt es genauere Hilfe zu den Vista-Optionen? Sind die für mich als XP User relevant? Betreffen die nur den Editor oder auch die finale EXE?

5.) Allgemein zur IDE: Will keinen neuen Thread aufmachen, deshalb hier: Wo sind die MenüIcons hin? Egal ob man die Menubar oben anklickt oder mit rechts auf den Code klickt, die schönen Icons sind verschwunden.

Ich danke euch für eure Antworten! :)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Hilfe zu den Compileroptionen (speziell Konstanten)

Beitrag von ts-soft »

AND51 hat geschrieben: 5.) Allgemein zur IDE: Will keinen neuen Thread aufmachen, deshalb hier: Wo sind die MenüIcons hin? Egal ob man die Menubar oben anklickt oder mit rechts auf den Code klickt, die schönen Icons sind verschwunden.
Datei/Einstellungen/Allgemein, letzte Checkbox:
"Symbole im Menü anzeigen" einen Haken setzen :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Vielen Dank! :allright:
Diese Einstellung habe ich glatt überlesen bzw. mir war nicht bewusst, dass es dafür ab sofort einen eigenen CheckBox gibt - war das vorher auch so?
Schade, dass dies standardmäßig ausgeschaltet ist. Egal, nu geht's wieder wie gewohnt.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

Die IDE Hilfe wird noch aktualisiert. Da bin ich noch nicht dazu gekommen.

> Entfernen und Löschen.
> Braucht man beide? Oder ist das ein Übersetzungsfehler?

Das sind "Remove" (=Eintrag löschen) und "Clear" (=alles löschen) im original,
das werde ich noch verbessern.

1) Man kann den Konstanten Werte zuweisen. Probier mal #Test=1 oder #Test="Hallo".
Es gelten die Regeln wie bei /CONSTANT beim Kommandozeilenaufruf. (auser das "" verwendet werden kann um explizit String Konstanten zu erzwingen)
Des weiteren kann man Umgebungsvariablen nutzen in dem man sie im bash-Stil mit "$" notiert.
Sowas wie: #Ersteller="$USERNAME"

Der Hauptsinn dieses Features ist das einfache Ein- und Ausschalten von Features im eigenen Program.
Zum Beispiel kann man eine Konstante #Demo definieren und dann im
Source mit "CompilerIf Defined(Demo, #PB_Constant)" testen ob es sie gibt.
Dann kann die "demo" Kompilierung genz einfach mit der Checkbox in der Konstantenliste
aktiviert oder deaktiviert werden.

2) Richtig erkannt.
Deaktivierbar ist das Feature desshalb, weil Sourcen die im Editor laufen generell
auch mit dem Kommandozeilencompiler compilierbar sein sollen. Wenn der Editor
aber Konstanten zur Verfügung stellt die es sonst nicht gibt dann geht das nicht.
Desshalb muss man das explizit aktivieren wenn man das haben will.
In den Preferences kann man es aber als default für alle neuen Sourcen einstellen.

3) Steht da wirklich "Linder" in der Übersetzung !?
Soll "Linker" heißen und bewirkt das gleiche wie die /LINKER Option. Es kann eine
Texttdatei mit Kommandozeilenbefehlen für den Linker angegeben werden.

4) Die Vista Optionen sind dann interessant wenn deine Programme auch für Vista bestimmt sind.
Sie haben unter XP und sonst keinerlei Wirkung, schaden dort aber auch nicht. (sind nur Einträge im Manifest der exe)

Hierbei geht es hauptsächlich um "UAC" (user access control) und das sog. "virtualisation" feature von Vista.
Hierbei werden Zugriffe auf Registry und geschützte Ordner "umgeleitet" in den User Ordner
wenn der User nicht die nötigen Rechte hat. Das ist einerseits nützlich für alte Programme,
kann aber zu Problemen führen, weil der User von der "Umleitung" nichts mitbekommt und
evtl. seine Daten nacher nicht findet auf der Festplatte.
Es empfielt sich also für Programme die das nicht brauchen, dieses Feature auch zu deaktivieren.

Admin mode: Wenn aktiviert, braucht das Programm immer Administratorrechte (startet sonst nicht),
hat dann aber auch vollen Zugriff auf alles (Registry etc) ohne Umleitung.
Setups und ähnliche Programme sollten dies nutzen um wirklichen Zugriff zu haben
und nicht durch die Umleitung "veräppelt" zu werden.
Wenn die Option an ist wird auch beim debuggen (standalone debugger) im Adminmodus getestet.

User mode: Das Program startet mit den normalen Rechten des Users.
Hier wird das Virtualisation feature deaktiviert. D.h. Wenn das Program (oder der User in dem Program, z.B. Save As... etc)
in ein Verzeichnis schreiben will kriegt er einen Zugriffsfehler anstatt das der
Zugriff umgeleitet wird.

Es empfielt sich also für Programme die für Vista geschrieben werden und die mit
den Einschränkungen der Userrechte kompatibel sind, den "User mode" zu aktivieren
damit der User keine Überraschungen erlebt.

Sind beide Optionen nicht an, so startet die Exe im User modus mit Virtualisation an,
d.h. das Program denkt es hat vollen Zugriff auf Registry und Dateisystem,
in wirklichkeit wird aber alles Umgeleitet.

5) danke ts-soft ;)


... puh, zu viel Text... :)

(wer Rechtschreibfehler findet darf sie behalten, diese aber nicht kommerziell weitervertreiben!)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hey freak, vielen herzlichen Dank für deine ausführliche Hilfe! :D
Da macht PureBasic gleich nochmal doppelt Spaß! :allright:


1.) Cool das wusste ich noch nocht. Da wäre ich auch nicht drauf gekommen. Erst wollte ich auf die nächste BETA warten, in der Hoffnung, dass bis dahin schon die Hilfe aktualisiert ist; aber dann dachte ich, wie soll ich Bugs jagen und Fehler finden, wenn ich nicht weiß, wie die Features zu bedienen sind?
Zu den Umgebungsvariablen: Das heißt, ich kann eine Variable vordefinieren, die ich mit GetEnviornmentVariable() abfragen kann? Auch im fertigen Programm? Diesen Teil habe ich ehrlich gesagt noch nicht ganz verstanden.
Nochmals danke für deine Begründung mit dem DEMO-Beispiel, das ist sehr interessant!

2.) Auch hier nochmal vielen Dank für die Begründung, dadurch kann ich mir das besser merken.

3.) Entschuldigung, da steht nicht "Linder", sondern "Linker"; ich habe mich vertippt...
Ansonsten: OK, verstanden.

4.) Klingt sehr interessant! Das mit dem UAC werde ich mir (irgendwann) nochmal reinziehen, da kommt man ja nicht drum rum, wenn man VISTA-tauglich programmieren will. Wird es dazu noch eine Seite in der Hilfe geben: "Die wichtigsten Regeln, um für VISTA zu programmieren", wo einige wichtige Punkte stehen, die ich beachten muss?

Zum Admin Mode: So wie du das erzählst, klingt es so, als könne dieses Feature auch für XP und teifer von Bedeutung sein. Ist dem so oder arbeitet dieses Feature nur unter VISTA? Weil der Eintrag lautet "Admin-Modus für VISTA anfordern".

Nochmals danke! <)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Gesperrt