Gadget3d - Speicherfehler...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Gadget3d - Speicherfehler...

Beitrag von KatSeiko »

Ich habe ein kleines Problem mit den 3D-Gadgets hier. Das ist mein erster Versuch eines Programms mit 3D-Gadgets... Als Demonstration hier ein Codeschnipsel (bei dem hänge ich aktuell, mein Programm ist noch nicht länger):

Code: Alles auswählen

;{ Enumeration
Enumeration
;Allgemein
#MainWindow
;3D-Umgebung
#ButtonSettings
#ButtonPlay
EndEnumeration
;}
#Title = ""

;{ Initialisierungen
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
;}

OpenWindow(#MainWindow, 0, 0, 1024, 768, #Title, #PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(#MainWindow), 0, 0, 1024, 768, 0, 0, 0)
ButtonGadget3D(#ButtonSettings, 50, 50, 100, 30, "Settings")
ButtonGadget3D(#ButtonPlay, 50, 100, 100, 30, "Play")

Repeat
ExamineMouse()
ExamineKeyboard()
WEvent = WaitWindowEvent(10)
Until WEvent = #PB_Event_CloseWindow
Ich erhalte nun folgenden Fehler:
Assertation Failed!

Program: ...
File: y:\cegui\include\CEGUISingleton.h
Line: 79

Expression: ms_Singleton

For more information on how your program can cause an assertation failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application - JIT must be enabled)
Ich muss wahrscheinlich nicht erwähnen, dass ich kein Laufwerk Y eingebunden habe...
Was fehlt?
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Das einzige was ich zu dieser Fehlermeldung gefunden habe:
http://www.purebasic.fr/german/viewtopi ... isingleton
Kann das Programm leider nicht testen, hab nur PB4.00.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Bei mir tritt der Fehler auch auf.

Ursache:

Code: Alles auswählen

ButtonGadget3D
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

hi KatSeiko,

in deinem code fehlen einige wichtige sachen ;)
man braucht ein paar extra dateien, aber dann funktioniert das bei mir:

Code: Alles auswählen

#MainWindow = 0
#ButtonExit = 0
#Title = ""
#Width = 800
#Height = 600
InitEngine3D()
; http://www.purebasic.com/Ogre1.6.zip (GUI -> Compilers kopieren)
Add3DArchive("GUI\schemes", #PB_3DArchive_FileSystem)
Add3DArchive("GUI\imagesets", #PB_3DArchive_FileSystem)
Add3DArchive("GUI\fonts", #PB_3DArchive_FileSystem)
Add3DArchive("GUI\looknfeel", #PB_3DArchive_FileSystem)
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
OpenWindow(#MainWindow, 0, 0, #Width, #Height, #Title, #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#MainWindow), 0, 0, #Width, #Height, 0, 0, 0)
OpenWindow3D(#MainWindow, 100, 100, 500, 300, "Title")
ButtonGadget3D(#ButtonExit, 200, 250, 100, 30, "Exit")
CreateCamera(0, 0, 0, 100, 100)
Repeat
  ExamineKeyboard()
  ExamineMouse()
  InputEvent3D(MouseX(), MouseY(), MouseButton(#PB_MouseButton_Left), KeyboardInkey())
  Select WindowEvent3D()
    Case #PB_Event3D_CloseWindow
      CloseWindow3D(#MainWindow)
    Case #PB_Event3D_Gadget
      Quit = 1
  EndSelect
  RenderWorld()
  FlipBuffers()
  If KeyboardReleased(#PB_Key_Escape)
    Quit = 1 
  EndIf
  Repeat
    Event = WindowEvent()
    If Event = #PB_Event_CloseWindow
      Quit = 1 
    EndIf
  Until Not Event
Until Quit
im Ogre1.6.zip von purebasic.com gib es auch ein beispiel (GUI.pb)

mfG
tobe
PureBasic 4.40 (Windows - x86)
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Das diese Zip
http://www.purebasic.com/Ogre1.6.zip
erforderlich ist, steht nirgends in der Hilfe.
Die in der Hilfe angegebene Datei "Gadget3D.pb" ist nicht existent.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten