Ich habe heute begonnen, mich mit GLFW zu befassen, welches mir mit C das Erstellen eines Fensters in OpenGL erleichtert.
Da es auch einen Delphi-Header dafür (glfw.pas) gibt, habe ich mir gedacht, es mal damit zu Versuchen.
Allerdings besitze ich kein Delphi und FreePascal will aus unerfindlichen Gründen nicht.
Deshalb verwende ich VPascal, welches theoretisch ja auch Delphi-kombatibel ist.
Wenn ich also glfw.pas kompilieren will, bekomme ich in diesem Abschnitt:
Dass ein Gleichzeitszeichen (=) zu viel ist, könnte ich verstehen. Das würde einfach heißen, dass der Compiler mit solchen Konstruktionen nicht zurecht kommt. Aber wo jetzt eins fehlen könnte - keine Ahnung.
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Ich hab es bei mir im XP versucht. Es sieht so aus, als wäre der Header für Delphi geschrieben. In Lazarus muss man den Delphi-Modus beim Kompilieren einstellen, denn sonst kriegt er das auch nicht auf die Reihe. Mit dem Delphi-Modus funktioniert das Kompilieren und Linken, aber die Initialisierung geht bei mir nicht; das ist aber schon ein Laufzeitfehler. Vermutlich deswegen, weil ich verschiedene Trümmer aufgesammelt habe: einerseits hatte ich die Source Deiner Dateien ohnehin auf meiner Platte und andererseits hab ich die nötigen Windows-Bibliotheken zu schnell heruntergeladen, um sicher sein zu können, dass das alles zusammenarbeiten kann.
Also: Lazarus mit Delphi-Modus (bzw. der FREE-Pascal-Compiler im Delphi-Modus) sollte funktionieren.
Sollten die obigen Vorschläge nicht helfen dann guck Dir mal Andorra2D an, der macht das m.E. auch mit GLFW.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Vielleicht könnte man das Untier vom Schwanz an bezwingen und du sagst einfach mal, was der FPC denn (nicht) tut?
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Ich habe mittlerweile etwas herumprobiert und es soweit geschafft, dass glfw.pas sowie das Example-Beispiel ohne Problem kompilieren. Wenn ich dann allerdigs die Exe öffnen will, öffnet sich kurz ein Fenster und schließt sich wieder. Versuche ich die Exe über die Eingabeaufforderung zu öffnen bekomme ich folgenden Fehler:
"Runtime error 200 at 6951BF59 (Exception C000008E) TID=1"
Mittlerweile kann ich das Fesnter für 1-2 Sekunden sehen, danach bekomme ich aber den Fehler:
Zitat:
Exception EZeroDivide in module nvoglnt.dll at 0001BF69. Floating point division by zero.
Vielleicht weiß hier jemand Rat.
nvoglnt.dll ist laut google eine nVidia Treiberdatei für OpenGL, also habe ich meine Treiber aktualisiert, was leider auch nicht weiter geholfen hat...
Edit: Vielleicht sollte ich dazusagen, dass das exakt gleiche Program in C mit MinGW ohne Probleme funktioniert. An der DLL wirds also nicht liegen (oder?).
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
EZeroDivide ist halt wie der Name schon sagt Division durch 0 und das könnte z.B. passieren, wenn dein Fenster eine Seitenlänge von 0 hat.
Dadurch würde dann z.B. die Berechnung der Perspektive mit 0 Dividiert werden und das mag das System garnicht.
Diesen Fehlertyp findest du sehr schnell, wenn du mal ein Debugger bemühst.
Vieleicht sind die Header unterschiedlich Implementiert z.B. ein unsigned int statt ein int oder umgekehrt.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Mitglieder in diesem Forum: Bing [Bot] und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.