Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 09, 2025 14:36

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit Funktion
BeitragVerfasst: So Mär 01, 2009 14:52 
Offline
DGL Member

Registriert: Fr Jan 25, 2008 15:12
Beiträge: 5
Hallo zusemman.

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:
Code:
  1.  
  2.  // Function pointer types
  3.   GLFWwindowsizefun    = procedure(Width, Height: Integer); stdcall;
  4.   GLFWwindowclosefun   = function: Integer; stdcall;
  5.   GLFWwindowrefreshfun = procedure; stdcall;
  6.   GLFWmousebuttonfun   = procedure(Button, Action: Integer); stdcall;
  7.   GLFWmouseposfun      = procedure(X, Y: Integer); stdcall;
  8.   GLFWmousewheelfun    = procedure(Pos: Integer); stdcall;
  9.   GLFWkeyfun           = procedure(Key, Action: Integer); stdcall;
  10.   GLFWcharfun          = procedure(Character, Action: Integer); stdcall;
  11.   GLFWthreadfun        = procedure(Arg: Pointer); stdcall;
  12.  


Immer folgende Fehlermeldung: Error 90 '=' expected

Was mache ich falsch?
Wäre schön, wenn mir jemand helfen könnte. :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 01, 2009 17:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 15:18
Beiträge: 62
Hallo,

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.

In welcher Zeile genau tritt denn der Fehler auf?

Grüße,
Yogu


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 01, 2009 17:45 
Offline
DGL Member

Registriert: Fr Jan 25, 2008 15:12
Beiträge: 5
Der Fehler tritt in der ersten Zeile auf. Wenn ich diese auskommentiere tritt der Fehler in der nächsten Zeile auf usw.

Edit:
Habe hier die gesamte Datei hochgeladen: http://www.mediafire.com/?xi1lxzx22il
Und hier das beiliegende Example: http://www.mediafire.com/?ydlo30bn0mt (kenne die Endung (dpr) nicht, mit Editor öffnen zeigt aber Pascal Code an)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 01, 2009 19:37 
Offline
DGL Member
Benutzeravatar

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.

Übrigens: "dpr" bedeutet: "Delphi Project"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 01, 2009 20:00 
Offline
DGL Member
Benutzeravatar

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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 01, 2009 20:59 
Offline
DGL Member

Registriert: Fr Jan 25, 2008 15:12
Beiträge: 5
Hallo Leute.

Erstmal Danke für die vielen Antworten hier. :)

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"

Weiß jemand Rat?

Schon mal Danke im Voraus.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 02, 2009 14:48 
Offline
DGL Member

Registriert: Fr Jan 25, 2008 15:12
Beiträge: 5
So, liebe Leute:

Hier ein Update. :D

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?).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 03, 2009 13:41 
Offline
DGL Member
Benutzeravatar

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

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 04, 2009 02:17 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Zitat:
Allerdings besitze ich kein Delphi [...]


Turbo Delphi

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.012s | 15 Queries | GZIP : On ]