Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Hilfe bei Fehlermeldung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.06.2014, 20:42 Uhr
Newcpp21



Hallo,

vorweg ich hoffe, dass ich diese Frage im richtigen Bereich gestellt habe.

ich habe mir das Buch 3D Grafikprogrammierung von Marius Apetri zugelegt, da mich das Thema sehr interessiert hat, allerdings bin ich ganz neu bei C++ und kenne mich auch nur mäßig mit Visual Studio aus, sodass ich den Schritten zur Intialisierung der Programme blind folgen muss.
Leider erhalte ich immer noch Fehlermeldungen und weiß nicht was ich tuen muss.
Der Autor reagiert leider nicht auf meine Anfragen deshalb hoffe ich hier auf Hilfe.
Die Anleitung lautet wie folgt:

"Die Übersetzung der Quelltexte mit diesem dritten Compilersystem erfolgt ebenfalls
nach Erstellung eines entsprechenden Projektes. Um das erste Beispielprogramm
a2_1 zu kompilieren, muss zunächst VISUAL STUDIO gestartet,
anschließend der Eintrag File -> New -> Project -> Visual C++ Projects
-> Win32 -> Win32 Project ausgewählt werden.

Als Projektname kann beispielsweise application eingegeben (der Pfad sollte
c:\ sein) und mit OK bestätigt werden. In der Registrierkarte Application Settings
ist der Eintrag Empty project anzukreuzen (der Eintrag Windows application
müsste bereits ausgewählt sein) und das Menü mit Finish zu schließen.
Der Compiler generiert automatisch ein neues Festplattenverzeichnis c:\application
mit mehreren Dateien. Zusätzlich zu diesen Dateien müssen die Quelltexte
aus dem Verzeichnis a2_1 auf der CD mit Hilfe des Datei Manager nach
c:\application kopiert werden.

Während dieses Kopiervorganges sollte das Hauptfenster des Compilers minimiert
sein. Anschließend müssen die Quelltexte mit dem Projekt verbunden werden.
Dies erfolgt über Project -> Add Existing Item. Bei der Pfadangabe muss
c:\application\application.cpp eingeben werden.
Das Einbinden der Bibliothek ddraw.lib erfolgt unter Verwendung der folgenden
Vorgehensweise: Hauptmenü MICROSOFT VISUAL STUDIO -> Project -> Properties
-> Verzeichnis Configuration Properties -> Schaltfläche Configuration
Manager -> Active solution configuration -> Menüpunkt
Release auswählen -> Close.

Verzeichnis Configuration Properties -> Verzeichnis Linker -> Input ->
Additional Dependencies -> ddraw.lib eintragen.
Das Fenster Properties kann anschließend mit OK geschlossen werden. Die Übersetzung
des Programms erfolgt über Build -> Rebuild Solution. Die ausführbare
Datei application.exe befindet sich im Verzeichnis
c:\application\release und lässt sich kann durch Doppelklick ausführen.

Die OPENGL-Programme werden unter Verwendung derselben Vorgehensweise
übersetzt; anstelle von ddraw.lib müssen jedoch die Bibliotheken opengl32.lib
und glu32.lib eingebunden werden."

Der erste Teil ohne OpenGL klappt soweit, nachdem ich bereits lange nach den Ursachen für andere Fehler gegoogelt habe und einiges ändern konnte.
Allerdings erhalte ich nun wieder beim letzten Schritt der Einbindung von OpenGL folgenden Fehler:

Fehler 1 error LNK2001: Nicht aufgelöstes externes Symbol "_wWinMain@16". c:\application\gl_application\gl_application\MSVCRT.lib(wcrtexew.obj) gl_application
Fehler 2 error LNK1120: 1 nicht aufgelöste Externe c:\application\gl_application\Release\gl_application.exe 1 1 gl_application

Habe gegoogelt und vorgeschlagene Lösungen getestet, hat leider nichts bewirkt.
Ich vermute ich muss noch eine .lib hinzufügen.

Weiß jemand rat wäre super dankbar.

Gruß
Marcus

Dieser Post wurde am 20.06.2014 um 20:43 Uhr von Newcpp21 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.06.2014, 15:20 Uhr
Hans
Library Walker
(Operator)


Hi,

hm... die Fehlermeldungen deuten darauf hin, dass der Linker irgendwelche Bibliotheken nicht findet, d.h. dass da noch irgendwelche *.lib-Dateien angegeben werden müssen.

Dir ist aber klar, dass es dabei entweder um DirectX oder um OpenGL geht, d.h. Du brauchst entweder ddraw.lib oder das Päärchen opengl32.lib und glu32.lib, aber nicht alle drei zusammen, denn die vertragen sich nicht miteinander.

Hans


P.S. ich hab das Buch auch, und versucht, die Sache mit VisualStudio 2008 nachzuvollziehen, hänge aber auch noch bei den Compilerfehlern fest.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.06.2014, 16:22 Uhr
Newcpp21



Hi Hans,
Danke für deine Antwort. Ja ich habe bislang immer entweder ddraw.lib oder glu32.lib+opengl32.lib hinzugefügt.

Vielleicht kann ich bei den Compilerfehlern helfen.

Ich hab zunächst #define _CRT_SECURE_NO_WARNINGS hinzugefügt. Dann verschwinden bei mir schonmal zwei Fehlermeldungen.

Als zweites muss man bei Projekteigenschaften unter Projektstandards den Zeichensatz von Unicode auf nicht festgelegt setzen.

Danach klappt der erste Teil zumindest auf Windows 7 auf Windows 8 gibt es zwar auch keine Fehlermeldungen mehr man bekommt aber nur einen schwarzen Bildschirm.
Wenn da jemand weiß woran es liegt wäre das auch sehr hilfreich.

Das ist nämlich auch der Grund weshalb ich es mit OpenGL versuche, weil es unter Windows 8 sonst nicht läuft.

Gruß
Marcus

Dieser Post wurde am 21.06.2014 um 16:23 Uhr von Newcpp21 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.06.2014, 22:55 Uhr
Hans
Library Walker
(Operator)


Hi,

ja, auf die Idee, Unicode abzuwählen bin ich auch schon gekommen. Aber Warnungen abzustellen ist in C und C++ meisst keine gute Idee.

Und ich bin mir gerade nicht ganz sicher, aber ich vermute, wenn man die Programme unter cygwin übersetzt, dann hat man einige Probleme weniger. - Hab's aber auch noch nicht ausprobiert.

Andere Frage: Du schreibst oben, dass Du neu bei C++ bist. Wie sieht das denn mit anderen Programmiersprachen, bzw. programmieren allgemein aus? - Hast du da schon Ahnung oder fängst Du gerade erst damit an? - Ich frage deshalb, damit ich nicht evtl. irgendwas schreibe, dass dann doch nicht weiter hilft, weil es nicht verstanden wird.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 21.06.2014 um 22:57 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.06.2014, 11:17 Uhr
Newcpp21



Hi,

ich habe schon einiges mit VBA und in R programmiert, aber bislang nicht auf diesem Niveau, also Objektorientierung ist Neuland für mich. Habe dazu bislang nur Tutorials angeschaut bzw. gelesen.

Cygwin habe ich auch schon ausprobiert es hat leider auf Anhieb auch nicht funktioniert und ich würde wenn möglich schon Visual Studio bevorzugen.

Wenn du eine Lösung findest wäre super.

Gruß
Marcus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.06.2014, 19:56 Uhr
~f.-th.
Gast


Hab mal im Netz ein wenig gesucht.

Scheinbar haben da mehrere Nutzer Probleme mit dem Buch.
Es gibt mehrere Ausgaben. Welche habt ihr? 2003 oder die 2.Auflage von 2007?
Welchen Compiler und welches Betriebssystem?

Hab das Buch nicht, deshalb kann ich nichts testen.

Einige Leser schildern das sie auch die fertigen Programme der CD auf ihrem Rechner nicht richtig laufend starten können?

Andere Leser sind am experimentieren mit den Bildschirmauflösungen und den Farbtiefen.
Sind da im Quelltext Hinweise? Und ändert sich etwas im Ergebnis, wenn ihr versucht da etwas bei der Auflösung oder der Tiefe anzupassen?


So jetzt mal das passende Stichwort in der Suche gefunden -> ergibt:
http://answers.microsoft.com/en-us/windows/forum/windows_8-gaming/directdraw-was-deprecated-in-windows-8-but-i-need/d21d6775-1006-4da9-a642-39553b286a49
Unter Windows 8 geht direkt draw nur im XP-Modus! Ob die andere Trick-Versuche möglich sind?

Zu Open GL in die Suche: Open GL win8 eingeben.

Testen ob eure Grafikkarte Open GL unter Win8 unterstützt? Hab jetzt nur ältere Beiträge gelesen - eventuell gibt es auch aktuelle Infos.
Windows 7 soll auf halbwegs aktueller Hardware noch Treiber haben?

Ohne Gewähr

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.06.2014, 20:25 Uhr
~f.-th.
Gast


Hier scheint es schon eine Lösung zu geben:
www.nvidia.de/download/driverResults.aspx/70211/de

Hoffe ihr hab die entsprechende Grafikkarte.
Die anderen Anbieter der Karten hab ich jetzt nicht gründlich abgegrast.

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.06.2014, 23:11 Uhr
Hans
Library Walker
(Operator)


Hi,

also was das Buch angeht, so hab ich die 2. Auflage von 2007. Arbeiten tu ich unter Vista.

Was die Programme angeht, so glaube ich, dass das Problem bei VS irgendwo bei der Konfiguration des Projekts oder den Compilereinstellungen liegt. Denn manche der Konstrukte, die der Compiler anmeckert, funktionieren unter C, aber nicht beim in diesem Fall verwendeten C++. Ich hab da z.B. 4 mal den error C2664:
Zitat:

Konvertierung des Parameters von 'const char [12]' in 'LPCWSTR' nicht möglich

Nachdem ich in den Projekteigenschaften eingestellt hatte, dass wchar_t nicht als integrierter Typ zu behandeln ist (im Eigenschaftsfenster unter C/C++ / Sprache) und die Compilierungsart (C/C++ / Erweitert) auf Standard gestellt hatte, ging es auf einmal.
Nur hat der Linker jetzt das Problem, dass er die zusätzlichen Bibliotheken nicht findet...
(ddraw32.lib findet er nicht, weil sie nicht vorhanden ist und die OpenGL32.Lib kann er nicht öffen, keine Ahnung, warum nicht.)

Soweit erst mal,
Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.06.2014, 23:51 Uhr
Hans
Library Walker
(Operator)


Nachtrag:
also vom ersten Beispielprogramm läuft die übersetzte Version von de CD bei mir. Bin jetzt gerade nicht sicher, ob sie so läuft, wie sie soll, aber grundsätzlich funktioniert es.
Ein Problem dabei könnte sein, dass die Programme im Vollbildmodus laufen. Aber das sollte eigentlich keines sein, weil das über die WinAPI-Funktion CreateWindowEx() gesteuert wird.

---

Dann wäre noch was zum Stil anzumerken, das jetzt aber icht sooo wichtig ist:
In C und C++ sollen in den Headerdateien, also jenen, die auf .h enden, eigentlich nur Deklarationen stehen. D.h. da soll nur drin stehen, dass es eine Funktion f() gibt, und ihre Parameter. Die Funktion selbst, also ihr Code, soll dann in einer eigenen Quelldatei stehen, die auf .c oder .cpp endet. (Das ist die C/C++ typische Unterscheidung zwischen Deklaration und Definition, näheres bitte erst mal in einem Lehrbuch/Tutorial nachschlagen.) Ein eigenes Programmmodul besteht dann also immer aus zwei Dateien: modul.h und modul.c bzw modul.cpp (je nach dem, ob man mit C oder C++ arbeitet).
Das hat der Herr Apetri aber nicht gemacht. Es gibt da eine Datei screen_interface.h, die in allen Beispielen via #include eingebunden wird und die enthält auch den kompletten Quellcode für das Interface, so dass eine Datei screen_interface.cpp nicht existiert.
Wie gesagt, das ist jetzt nicht soo wichtig, könnte aber Verwirrung stiften, wenn man nach einer *.c-Datei sucht, die nicht existiert. Und es funktioniert ja auch...
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.06.2014, 00:19 Uhr
Hans
Library Walker
(Operator)


Nachtrag 2:

Zitat von Newcpp21:

Danach klappt der erste Teil zumindest auf Windows 7 auf Windows 8 gibt es zwar auch keine Fehlermeldungen mehr man bekommt aber nur einen schwarzen Bildschirm.
Wenn da jemand weiß woran es liegt wäre das auch sehr hilfreich.


Wie aus den Links von ~f.-th. hervor geht, wird DirectX unter Windows 8 nicht mehr unterstützt, bzw. läuft nur noch in einem Kompatibilitätsmodus oder einer VM.
Wie die Beispielprogramme mit OpenGL verwendet werden, steht im Anhang C.2 (PDF-Datei) bzw. im Kapitel 2.6 ab Seite 121 in der 2. Auflage des Buches.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: