Zum Inhalt springen

OpenGL Einbettung in Visual Studio 2008 / 2010


derwunner

Empfohlene Beiträge

Hallo,

also im Internet findet man ja tausend verschiedene Lösungsansätze, um OpenGL mit Visual C++ programmieren zu können.

Mein Problem ist: Ich bin mit den tausenden Anleitungen etwas überfordert.

Was ich bis jetzt schon gemacht habe: Ich habe mir glut runtergeladen, und die in den Visual Studio Ordner unter VC lib Ordner unter GL die glut32.lib reingetan. Die glut32.h in den Ordner include\GL.

Bei den Projekt selber hab ich die verschiedenen OpenGL lib Dateien im Linker eingebunden.

Visual Studio motzt ungefähr bei der Hälfte eines funktionierenden Code-Beispiels. Auch werden angeblich die Header Dateien nicht gefunden. Das Code-Beispiel stammt von einer Deutschen Übersetzung des Nehe Tutorials.

MFG derwunner

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei mir klappt alles problemlos mit diesen paar includes:

#include <glew.h>                    // Header File For The GLaux Library
#include <gl\gl.h> // Header File For The OpenGL32 Library
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The GLaux Library
#include <glext.h> // Header File For The GLaux Library
#include <glut.h> // Header File For The GLaux Library
#pragma comment(lib, "glew32.lib")
[/PHP]

glew32.dll und glut32.dll sollten noch in einem erreichbaren Ordner fürs Programm sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm. Aber paar Anweisung sind ja gleich. Visual Studio meint aber bei jeder, dass sie nicht gefunden wird. Muss ich die Header Dateien jedes Mal ins Projekt mit einbinden?

Oder hast du noch irgendwas anderes außergewöhnliches mit eingebunden?

Auf jeden Fall mit den Header Dateien gehts bei mir nicht.

MFG derwunner

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mehr ist nicht eingebunden.

Du kannst noch probieren, bei den Settings->C/C++->Zusätzliche Includeverzeichnisse alle wichtigen Ordner hinzuzufügen, in denen etwas Relevantes steht.

Außerdem könntest Du mal den Vorkompilierten Header neu erstellen und danach wieder auf ...verwenden zurück schalten.

Bei Linker->Eingabe->Zusätzliche Abhängigkeiten alle Dlls und libs direkt eintragen.

Das habe ich zwar alles nicht gebraucht, aber vielleicht hilft´s in Deinem Fall weiter.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alles klappt nicht. Da steht immer z. B. "glu.h Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen"

Ich habe die glut.h ins Projekt eingebunden, ging nicht. Im Visual Studio VC\include Ordner auch nicht. Komischerwesie Header Dateien aus dem include Ordner, die vorher schon drin waren, gehen. Ich habe außerdem alle dll und libs die mit OpenGL zu tun haben bei weitere Abhängigkeiten eingebunden. Die libs waren ja auch schon vorher drin.

Es kommen trotzdem immer noch die gleichen Fehler.

MFG derwunner

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also wenn ich diese Reihenfolge mache:


#include <stdafx.h>

#include <glut.h>

#include <windows.h>

#include <gl\gl.h>

#include <gl\glu.h>

#include <gl\glaux.h>

#include <glext.h>

dann gibt mir Visual Studio noch folgende Fehlermeldungen aus:

1 error C2381: 'exit': redefinition;_declspec(noreturn) unterscheidet sich. Fehler in Datei stdlib.h Zeile 371

2 warning C4985: "exit": Attribute sind in vorheriger Deklaration nicht vorhanden. Fehler in Datei stdlib.h in Zeile 371

3 fatal error C1083: Datei (Include) kann nicht geöffnet werden: "gl\glaux.h": No such file or directory

Das mit in Datei XY habe ich hinzugefügt, weil es in VS noch eine Spalte namens Datei gibt bei der Fehlerbeschreibung.

Das stdafx.h habe ich hinzugefügt, weil es anscheinend VS braucht.

Sind aber mal auf jeden Fall schonmal bedeutend weniger Fehlermeldung von ca. 100 auf 3 runter :uli

MFG derwunner

Link zu diesem Kommentar
Auf anderen Seiten teilen

3 fatal error C1083: Datei (Include) kann nicht geöffnet werden: "gl\glaux.h": No such file or directory
Du hast die Headerverzeichnisse immer noch nicht richtig eingerichtet. Du musst in den Projekteinstellungen festlegen, wo Headerdateien gesucht werden sollen. Ich hoffe, du hast die Header nicht irgendwo hin kopiert.

Das stdafx.h habe ich hinzugefügt, weil es anscheinend VS braucht.

VS "braucht" das nur, wenn im Projekt die Verwendung vorkompilierter Header eingestellt ist. Man kann das auch abstellen.

Sind aber mal auf jeden Fall schonmal bedeutend weniger Fehlermeldung von ca. 100 auf 3 runter :uli
Die Anzahl der Fehlermeldungen sagt nicht viel aus.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, ich habe sie nicht irgendwo abgelegt, sondern im Visual Studio 9.0 Order unter VC\include\gl

Die Header werden ja auch jetzt gefunden. Jetzt kommen nur noch Konvertierungsfehler von verschiedenen MessageBoxW . Und dass beim Header glaux.h ein unerwartetes Token nach Präprozessorperdirektive - Zeilenvorschub erwartet.

Meine includes sehen jetzt so aus:


#include <gl\glut.h>

#include <windows.h>

#include <gl\gl.h>

#include <gl\glu.h>

#include <gl\glaux.h>

#include <gl\glext.h>

MFG derwunner

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt kommen nur noch Konvertierungsfehler von verschiedenen MessageBoxW
Die genaue Fehlermeldung ist wichtig. Ich tippe darauf, dass du im Projekt als Zeichencodierung Unicode eingestellt hast. Die Windows-Funktionen wie MessageBox erwarten String-Parameter als Wide Character. Du könntest einfach auf Multi-Byte umstellen, falls du kein Unicode benutzen willst.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, folgende Fehlermeldungen kommen noch:


error C2381: 'exit': redefinition; _declspec(noreturn) unterscheidet sich Zeile 371

warning C4985: "exit": Attribute sind in vorheriger Deklaration nicht vorhaden. Zeile 371

warning C4067: Unerwartete Token nach Präprozessordirektive - Zeilenvorschub nicht erwartet. Zeile 5

error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char[40]' in 'LPCWSTR' Zeile 111

error C2440: '=': 'const char[7]' kann nicht in 'LPCWSTR' konvertiert werden

error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char[7]' in 'LCPWSTR' nicht möglich

MFG derwunner

Link zu diesem Kommentar
Auf anderen Seiten teilen

error C2381: 'exit': redefinition; _declspec(noreturn) unterscheidet sich Zeile 371

warning C4985: "exit": Attribute sind in vorheriger Deklaration nicht vorhaden. Zeile 371

Das bringt nicht viel ohne die Dateien. Kopier die Meldungen bitte aus "Output", nicht "Error List".

error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char[40]' in 'LPCWSTR' Zeile 111

error C2440: '=': 'const char[7]' kann nicht in 'LPCWSTR' konvertiert werden

error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char[7]' in 'LCPWSTR' nicht möglich

Wie gesagt, entweder die Strings auf Wide-Character umstellen, oder das Projekt auf Multi-Byte.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also das heißt ich müsste entweder im Projekt auf Multi-Byte umstellen, oder die ganzen Datentypen in Wide String ändern?

Wie geht das mit Multi-Byte? Hab schonmal danach gegogelt, aber ohne wirkliche Ergebnisse.

Und wozu die Output? Kann ich damit die Fehler in eine Textdatei speichern?

Sorry wenn euch manche Fragen komisch vorkommen, aber ich bin noch relativ neu in C++.

MFG derwunner

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie geht das mit Multi-Byte? Hab schonmal danach gegogelt, aber ohne wirkliche Ergebnisse.
Project Properties

> Configuration Properties

> C/C++

> General

> Character Set --> Use Multi-Byte Character Set

Und wozu die Output?
Ich vermute, dass bei deinen Fehlermeldungen die Dateinamen fehlen, weil du sie aus der Error List kopierst. Im Output-Fenster sollten sie mit drin sein.

Sorry wenn euch manche Fragen komisch vorkommen, aber ich bin noch relativ neu in C++.
Dann solltest du dich erst einmal darum kümmern, dass du in den Grundlagen von C++ und der Bedienung deiner Entwicklungsumgebung sattelfest wirst, bevor du dich an OpenGL wagst.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...