[gelöst] Komische Abstürze unter PB

Anfängerfragen zum Programmieren mit PureBasic.
moin
Beiträge: 59
Registriert: 03.07.2007 08:38
Wohnort: Norddeutschland

[gelöst] Komische Abstürze unter PB

Beitrag von moin »

Hallo,
Wenn ich das folgende Programm mit PB4.1 kompiliere läuft es ohne Fehler. Wenn ich mir aber eine EXE-Datei erstellen lasse, stürze es mit einer Fehlermeldung ab. Das Programm habe ich aus den "CodeArchiv_v4-Beta"-Beispielen entnommen.
Ich arbeite mit WIN-XP home und DxDiag meldet keine Fehler.
Könnt ihr mir helfen das Problem einzukreisen?

Code: Alles auswählen

; http://en.games-creators.org/wiki/PureBasic:First_tutorial_on_3d
; Author: Comtois
; Date: 18. August 2006
; OS: Windows
; Demo: Yes


;PB 4.0 le 18/08/06

InitEngine3D()
InitSprite()
InitKeyboard()

ExamineDesktops()
OpenScreen(DesktopWidth(0), DesktopHeight(0), DesktopDepth(0), "Tutoriel 3D")

;OpenScreen(800, 600, 32, "Tutoriel 3D")

;Création of the mesh
#Mesh = 0
CreateMesh(#Mesh, 200)

;Définition of the vertices
SetMeshData(#Mesh, #PB_Mesh_Vertex | #PB_Mesh_Color , ?SommetsTriangles, 3) ; Indicate number of vertices

;Définition of triangles
SetMeshData(#Mesh, #PB_Mesh_Face, ?IndexTriangles, 1) ; indicate the number of triangles

;Création of a texture
#Texture = 0
CreateTexture(#Texture, 64, 64)

;{Remplissage de la texture en blanc pour visualiser les couleurs des sommets}
;Draw a box to use as the texture that gives visual/colour effect to the vectors / vertices?
StartDrawing(TextureOutput(#Texture))
  Box(0,0, TextureWidth(#Texture), TextureHeight(#Texture), RGB(255, 255, 255))
StopDrawing()

;Créate material
#Matiere = 0
CreateMaterial(#Matiere, TextureID(#Texture))
MaterialAmbientColor(#Matiere, #PB_Material_AmbientColors)

;Créate entity
#Entity = 0
CreateEntity(#Entity, MeshID(#Mesh), MaterialID(#Matiere))

;Add a caméra, indispensable if something is to be seen
#Camera = 0
CreateCamera(#Camera, 25, 25, 50, 50) ; Créate caméra
CameraBackColor(#Camera, $FF0000) ; Back color is blue
CameraLocate(#Camera,0,0,500) ; Position the caméra
CameraLookAt(#Camera, EntityX(#Entity), EntityY(#Entity), EntityZ(#Entity)) ; Point/orient the caméra towards the entity

Repeat

  ClearScreen(0)

  ExamineKeyboard()

  RenderWorld() ; Display the 3D world

  FlipBuffers()

Until KeyboardPushed(#PB_Key_All)

DataSection

  SommetsTriangles:

  Data.f 0.0,100.0,0.0              ; Position vertex 0
  Data.l $FF0000                    ; Colour vertex 0
  Data.f 200.0,-100.0,0.0           ; Position vertex 1
  Data.l $00FF00                    ; Colour vertex 1
  Data.f -200.0,-100.0,0.0          ; Position vertex 2
  Data.l $0000FF                    ; Colour vertex 2

  IndexTriangles:
  Data.w 2,1,0                      ; Vertices 2, 1 and 0 form a triangle

EndDataSection

; IDE Options = PureBasic v4.02 (Windows - x86)
; Folding = -
; EnableXP
Momentan bin ich ziemlich ratlos.
Euer moin
Zuletzt geändert von moin am 21.05.2008 09:27, insgesamt 1-mal geändert.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Komische Abstürze unter PB

Beitrag von Kiffi »

moin hat geschrieben:Wenn ich das folgende Programm mit PB4.1 kompiliere läuft es ohne Fehler.
Wenn ich mir aber eine EXE-Datei erstellen lasse, stürze es mit einer
Fehlermeldung ab.
bestätigt. Hier mit PB4.2 B6 ebenso.

Aber sorry, keine Ahnung, woran es liegt.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@moin
Kopiere folgende DLL's vom Compiler-Verzeichnis in dein Ordner, wo die EXE ist:
-Engine3D.dll
-stlport_vc646.dll

Dann klappt es :)
moin
Beiträge: 59
Registriert: 03.07.2007 08:38
Wohnort: Norddeutschland

Beitrag von moin »

Jetzt klappt es bei mir auch. Vielen Dank. :D :D :D
Gibt es noch mehr dieser Probleme?
Wie kann ich JaPBe dazu bekommen, dass es mein Programm kompiliert?
Hierbei hatte ich dieselben Probleme.

Kann man das Problem mit den DLLs umgehen, damit man bei der Weitergabe der Programm nicht auch die DLLs weitergeben muss?

moin
Rokur
Beiträge: 167
Registriert: 29.12.2005 09:58
Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)

Beitrag von Rokur »

Die DLLs brauchst du auf jeden Fall, vor allem wenn du dein Programm weitergibst sollte die in der Installationsroutine enthalten sein. Darin ist die 3D-Engine gespeichert, die PureBasic intern verwendet.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

moin hat geschrieben: Kann man das Problem mit den DLLs umgehen, damit man bei der Weitergabe der Programm nicht auch die DLLs weitergeben muss?
Eigentlich nicht, da die Funktionen, die du benutzt, in der DLL-Datei sind und die brauchst du.

\\Edit:
Eine Sekunde war Rokur schneller :mrgreen:
Antworten