ich benutzte das NonVCL Template dieser Seite und bekomme beim Compilieren immer den Fehler auf dem Bild im Attachment. Was kann man dagegen machen? Der Header ist der neuste von dieser Seite hier.
Vielen Dank.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Es sieht nicht so aus als wäre die Meldung von Compiler sonder eine Laufzeitfehler. Meiner Meinung nach , es handelt sich um etwas, was hier schon so oftmals erwähnt würde. Die Funktion CreateWindowEx (oder CreateWindow), bevor sie zurückkommt, sendet eine WM_SIZE (oder WM_SIZING) Nachricht an das Fenster. In dem Augenblich gibt es nocht kein RC (function CreateRenderingContext) oder gar DC (GetDC) und auch OpenGL "function pointers"-(alle glXX Befehle) sind alle auf nil gestezt. Und wenn du sie zum ersten Mal in WM_SIZE(oder WM_SIZING) z.B. via glResize(width,height) zu aufrufen versuchst, dann ist es eine AccessV.
_________________ "Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump
Ok, ich schau mir das template dann mal an. Ist dann wohl falsch, sollte man vielleicht auch einmal ändern, den veraltete Sachen auf der Hp machen sich nicht so gut;-)
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
Also sowohl die Interpretation des einen, noch die Aussage des anderen kann ich wirklich ohne ein lächeln im Gesicht über mich ergehen lassen. Den ich halte es für einen klassiven Fall von: Wer lesen kann, ist im Vorteil und empfehle entweder den Beipackzettel des Headers zu lesen oder zumindest unser FAQ:
http://wiki.delphigl.com/index.php/FAQ F : Ich habe früher den mit Delphi gelieferten OpenGL-Header (OpenGL.pas) benutzt, und bin auf euren Header umgestiegen. Die Programme lassen sich dann zwar ohne Änderungen kompilieren, aber beim Start erhalte ich eine Zugriffsverletzung an Adresse 0.
A : Um unseren Header flexibler zu machen, haben wir in Sachen Initialisierung etwas geändert. Vor dem Aufruf (am besten direkt nach Programmstart) des ersten GL-Befehles, muss erstmal InitOpenGL() aufgerufen werden, so dass die OpenGL-Funktionszeiger zugewiesen werden. Desweiteren sollte darauf geachtet werden, dass vor dem Aufruf eines glBefehls der Context aktiviert wird. Danach kann ganz normal weitergearbeitet werden. Diese Änderung wurde deshalb getätigt, weil wir mit unserem Header auch das dynamische Laden anderer OpenGL-Implementationen (z.B. MESA) ermöglichen wollten.
Des Weiteren verweise ich darauf, dass dies ein kostenfreier Service ist, der in der Freizeit gemacht wird und keineswegs Anspruche an sich stellt ein Out-Of-The-Box zu sein. Deswegen reicht es eben nicht immer für ein OpenGL1.2-Template einfach zwei Units auszutauschen
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Ich wollte damit eure Arbeit nicht kritisieren. Ich find es echt Klasse, was ihr hier macht und bin euch dankbar, den ich will auch OpenGL lernen und das wird mit euren Tutorilas sicher einfacher funktionieren. Allerdings bin ich halt noch am lernen und weiß recht wenig über OpenGL, daher auch nicht viel über dessen Initialisierung. Ich hatte bisher noch nicht in die Wiki geschaut, da ich noch in den Anfänger Tuts stecke, aber ich werd es nun häufiger tuhen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Keine Angst. Phob klang strenger als es gemeint war. (Der hat sowas drauf )
Solange du nicht größenwahnsinnig oder egozentrisch hier auftrittst ham dich alle lieb.
Aber eins is noch Wichtig. Es ist das Wiki, nicht die.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Naja, das der Befehl InitOpenGL() am anfang aufgerufen wird, ist ja nicht so schwer zu machen, aber das mit dem COntext aktivieren versteh ich irgendwie nicht. Wie kann man den den Context aktiverien? Und welchen Context?
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.