Author Topic: windowsfehler bei GLOBAL Numfaces= X_NUMFACES(0)  (Read 4736 times)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5116
  • O Rly?
    • View Profile
Hi wie in der Headline schon steht:

Code: (glbasic) [Select]
// Object + Textur
X_LOADOBJ "cube.ddd", 0
LOADSPRITE "pngbase.png", 0

GLOBAL Numfaces= X_NUMFACES(0)

WHILE TRUE

PRINT Numfaces,10,10



SHOWSCREEN
WEND
END
gibt mir einen Windoof-fehler , sprich die Exe hängt sich auf!

Testet ihr das bitte auch mal?!

Mache ich das Global weg gehts !
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10839
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
windowsfehler bei GLOBAL Numfaces= X_NUMFACES(0)
« Reply #1 on: 2007-Oct-23 »
Jo. Also. GLOBAL hat 2 Funktionen.
1. Neue Variable:
Das erste Mal, wenn der Compiler auf GLOBAL XXX oder GLBOAL XXX=YYY stößt, macht er eine globale Variable mit dem Namen XXX und weist ihr noch vor Programmbeginn den Wert 0 oder YYY zu.
In Deinem Fall "X_NUMFACES(0)", wobei die 3D Engine noch gar nicht geladen ist.

2. Globale Unterscheidung
Wenn es 2 Variablen gibt, die gleich heissen, kann man mit dem Keyword GLOBAL dafür sorgen, dass der Compiler die globale verwendet. In Deinem Beispiel müsste man dazu schreiben:
GLOBAL Numfaces // Macht eine globale mit Wert 0
GLOBAL Numfaces = X_NUMFACES(0) // weist an dieser Stelle den Wert zu

Da es keine andere Variable mit dem Namen Numfaces gibt, solltest Du's so machen:
GLOBAL Numfaces // Compiler, mecker nicht rum - ich weiß, dass es die gibt
Numfaces = X_NUMFACES(0) // nimmt immer die globale, weil's keine lokale gibt!!

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5116
  • O Rly?
    • View Profile
windowsfehler bei GLOBAL Numfaces= X_NUMFACES(0)
« Reply #2 on: 2007-Oct-23 »
ist aber nur in GLBasic so oder?
Bei anderen Sprachen konnte ich, meines wissens, immer direkt zuweisen ?!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10839
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
windowsfehler bei GLOBAL Numfaces= X_NUMFACES(0)
« Reply #3 on: 2007-Oct-23 »
Ja. Ich hab das so gemacht, damit man globale variablen eben zuweisen kann vor Programmstart. Ich sollte es evtl. so ändern, dass er das nur macht, wenn die GLOBAL ausserhalb von FUNCTION steht. Viel bessere Idee!
Grunz, grunz!

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5116
  • O Rly?
    • View Profile
windowsfehler bei GLOBAL Numfaces= X_NUMFACES(0)
« Reply #4 on: 2007-Oct-23 »
Ok wie du es meinst ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard