Seite 1 von 1

Seltsame Fehlermeldung bei #ifndef ... Not allowed outside .

Verfasst: Do, 10. Jul 2014 9:09
von brandelh
Hi,

ich war eben fast am verzweifeln, weil ich in einer CH Datei und der zugehörigen PRG immer den Fehler erhielt:

Code: Alles auswählen

xpp /q /W /N /M /WI /WN /WL /es /P /b /dDEBUG @c:\temp\07106389.tmp
HBTools4XB.ch(4:0): error XBT0200: Syntax Error
TESTHBT.PRG(4:0): error XBT0204: Statement not allowed outside procedure or function
Processing time:      0.05 secs.
*** Process "K:\XPPW32\bin\Pbuild.EXE" terminated. Return code=2
die betreffende Zeile war diese:

Code: Alles auswählen

#ifndef _HBTools4XB.CH_
da #ifndef am Anfang fast jeder CH steht, kann es der Befehl selbst nicht sein.

Die Lösung ? Es ist der Punkt bei ".CH", alle anderen haben dort ein "_CH", nachdem ich also die Zeile abändere

Code: Alles auswählen

#ifndef _HBTools4XB_CH_
ist alles OK !

Steht das irgendwo ?

Re: Seltsame Fehlermeldung bei #ifndef ... Not allowed outsi

Verfasst: Do, 10. Jul 2014 11:54
von komnick
In der Dokumentation steht bei #define über die definierten Konstanten: "Sie beginnen mit einem Buchstaben oder Unterstrich und bestehen ansonsten aus alphanumerischen Zeichen."
Aber wie ist "alphanumerisch" definiert?
Also gefühlsmäßig sind das für mich Buchstaben, Ziffern und der Unterstrich, aber keine sonstigen Sonderzeichen...

Re: Seltsame Fehlermeldung bei #ifndef ... Not allowed outsi

Verfasst: Do, 10. Jul 2014 12:45
von brandelh
:arrow: http://de.wikipedia.org/wiki/Alphanumerische_Zeichen

nunja, hauptsache man merkt es sich ;-) KEIN PUNKT bei Define ... wobei das eigentlich klar ist,
wenn man bedenkt, dass ja auch ZAHLENWERTE per DEFINE definiert werden können ! :banghead:

Re: Seltsame Fehlermeldung bei #ifndef ... Not allowed outsi

Verfasst: Do, 10. Jul 2014 15:00
von Koverhage
Häh ?
Als Variableninhalt ja
Beispiel

#define Altergefuehlt 60

aber ja nicht als Zahlenwert
#define 60

Re: Seltsame Fehlermeldung bei #ifndef ... Not allowed outsi

Verfasst: Do, 10. Jul 2014 15:17
von brandelh
Klaus,

das meinte ich doch ;-)

Code: Alles auswählen

#define nWert 65.3323
intern wird das dann so umgebaut, dass danach die Syntax nicht mehr stimmt.
Daher der genannte Fehler. Hier mal der Ausschnitt aus der PPO Datei:

Code: Alles auswählen

#line 1 "K:\XPPW32\INCLUDE\Common.ch"@"Common.ch" 
#line 7 "TESTHBT.PRG" 
#line 1 "HBTools4XB.ch"@"HBTools4XB.ch" 

.CH_

#line 8 "TESTHBT.PRG" 

procedure main
Klar dass er das anmeckert: .CH_

ICH brauchte allerdings eine Zeit bis ich erkannte woran es lag, daher mein Hinweis hier.