Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.02.2007, 15:38

Tutorial verschwunden?

Hallo erstmal^^

Laber Teil:
Ich habe mir das Buch "C++ für Spieleprogrammierer" von Heiko zugelegt und komme damit ganz gut voran.... bis zum Teil wo es um das erste Windoof-Fenster geht. Das liegt weniger daran dass ichs noch nicht ganz durchschaut habe als das ich den Code nit kompilieren kann.

Habs mit dem MS Visual Studio 6 von der CD versucht, Fehlanzeige.

Dann hab ichs mit dem Visual Studio 2005 Express verrsucht, ebenfalls Fehlanzeige...
Als ich dann traurig festellen musste Dass die Seite die in Heikos buch angegeben ist, www.entwicklerwahnsinn.de, garnicht geht^^ bin ich durch zufall auf dieses Forum gestoßen

Konkrete Frage:
Ich habe das Platform SDK runtergeladen und installiert, im Studio, denk ich auch richtig verlinkt, aber trotzdem spuckt mir das VS folgende Fehler (beim Linken, glaub ich) aus:

C-/C++-Quelltext

1
2
3
4
5
6
>------ Erstellen gestartet: Projekt: 10_1, Konfiguration: Debug Win32 ------
1>Verknüpfen...
1>LINK : fatal error LNK1104: Datei "odbc32.lib" kann nicht geöffnet werden.
1>Das Buildprotokoll wurde unter "file://c:\Programme\Projects\10_1\Debug\BuildLog.htm" gespeichert.
1>10_1 - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Es gab anscheinen mal ein gaaanz tolles tutorial dass beschrieb wie man das VS 2005 express einrichtet, das ist aber flöten gegangen...
http://www.germangamedev.de/index.php?site=article&id=28

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

2

15.02.2007, 16:35

Hallo ersmal

Richtig die Seite ist zur Zeit off(coming soon)

Schau mal ob du das verwenden kannst
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=6926&highlight=visual++2005+lib+datei

Hast du das neuste SDK heruntergeladen ;)

3

15.02.2007, 16:59

Aha, danke fürs tuorial!

Habs jetzt gemacht und nun sieht die Sache etwas anders aus:

Wenn ich wie im Tutorial eine leere Win32 anwendung erstelle und dann den Code aus Listing 10_1, in dem ja eigentlich schon alles drin sein sollte, rein kopiere, spuckt mir der Compiler zwei Fehler aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
1>------ Erstellen gestartet: Projekt: haha, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>dudu.cpp
1>c:\dokumente und einstellungen\maximilian sieß\eigene dateien\visual studio 2005\projects\haha\haha\dudu.cpp(54) : error C2440: '=': 'const char [15]' kann nicht in 'LPCWSTR' konvertiert werden
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\dokumente und einstellungen\maximilian sieß\eigene dateien\visual studio 2005\projects\haha\haha\dudu.cpp(70) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [15]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Maximilian Sieß\Eigene Dateien\Visual Studio 2005\Projects\haha\haha\Debug\BuildLog.htm" gespeichert.
1>haha - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Dabei zeigt der Compiler auf diese Zuweisung:

C-/C++-Quelltext

1
2
// Klassenname angeben

  windowclass.lpszClassName = szClassName;


Und der zweite Fehler auf das hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
// Das Fenster erzeugen

  hWnd = CreateWindowEx (NULL,
                         szClassName,
                         "Das erste Fenster!",
                         WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                         100, 100,
                         300, 250,
                         NULL,
                         NULL,
                         hInst,
                         NULL);


Ich kann jedoch keinen Fehler sehen?
Oder war es ein Fehler einfach den Quellcode aus dem Listing zu kopieren?

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

4

15.02.2007, 17:14

Du hast Unicode aktiviert.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
// Das Fenster erzeugen

  hWnd = CreateWindowEx (NULL,
                         szClassName,
                         L"Das erste Fenster!",
                         WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                         100, 100,
                         300, 250,
                         NULL,
                         NULL,
                         hInst,
                         NULL);

C-/C++-Quelltext

1
static TCHAR szClassName[] = L"Blabla";


Dann müsste es gehen

5

15.02.2007, 17:36

Heureka!!!!!!!

Danke, für deine Hilfe!

Aber was ist dieser Unicode? Und warum ist er in dem Listing "aktiviert", wie du sagst, wenn er doch Fehler verursacht?

Sheddex

unregistriert

6

15.02.2007, 17:42


Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

7

15.02.2007, 17:47

Unicode verursacht keine Fehler!
Unicode ist grob glaube ch so etwas wie ein Zeichensatz. Er soll die verschiedenen nationalen Zeichensätze verbinden. Er ummfasst so ziemlich alle Zeichen die man mal brauchen kann.

Das ist halt sinnvoller. Dafür gibt es dann eigene Funktionen TCHAR, MessageBoxW etc.
Du kannst es natürlich umstellen, was allerdings nicht unbedingt ratsam ist,
Projekt->Eigenschaften->Knfigurationseigenschaften->Zeichensatz

Aber am besten man lernt di Unicodebegriffe(ist nicht schwer) An Funktionen hängt man ein W( ist aber nicht unbedingt nötig erkennt der Kompiler von selbst) und vor stringskommt ein L: L"Text"
Und dann halt die Variablen. Aber es bringt was

8

15.02.2007, 20:03

Zitat von »"DragonFlame"«


:D

Zitat von »"Fred"«

Unicode verursacht keine Fehler!

OK, OK... das war ein wenig vorschnell von mir^^

Aber ich glaube ich stelle lieber um, ich möchte ja schließlich die Beispiele aus dem Buch lesen & compilieren können.

€: Bei mir ist nicht auf Unicode, sondern auf "Multi-Byte-Zeichensatz" gestanden.... nur so als Info..

9

15.02.2007, 21:41

So, und wo ich doch so einen schönen Thread erstellt habe, kann ich doch auch meine nächste Frage posten:

Das Beispiel 12, aus "C++ für Spieleprogrammierer" will sich bei mir nicht compilieren lassen. Die SDL ist drin und auch auf "Multithreaded-DLL" wurde umgestellt. Trotzdem weigert sich der Code extrem.

Hier die Fehler die Visual C++ 6 Autoren Edition ausgibt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--------------------Konfiguration: main - Win32 Debug--------------------
Kompilierung läuft...
main.cpp
Linker-Vorgang läuft...
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall CFramework::Quit(void)" (?Quit@CFramework@@QAEXXZ)
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall CGame::Quit(void)" (?Quit@CGame@@QAEXXZ)
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall CGame::Run(void)" (?Run@CGame@@QAEXXZ)
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall CGame::Init(void)" (?Init@CGame@@QAEXXZ)
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall CGame::CGame(void)" (??0CGame@@QAE@XZ)
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: bool __thiscall CFramework::Init(int,int,int,bool)" (?Init@CFramework@@QAE_NHHH_N@Z)
MSVCRT.lib(crtexe.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/main.exe : fatal error LNK1120: 7 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

main.exe - 8 Fehler, 0 Warnung(en)

Und hier die Fehlermeldung von VC++ 2005 EE:

C-/C++-Quelltext

1
2
3
4
5
6
1>------ Erstellen gestartet: Projekt: SDL_Game, Konfiguration: Debug Win32 ------
1>Verknüpfen...
1>LINK : fatal error LNK1104: Datei "odbc32.lib" kann nicht geöffnet werden.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Maximilian Sieß\Eigene Dateien\Visual Studio 2005\Kapitel 12\Debug\BuildLog.htm" gespeichert.
1>SDL_Game - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Das Buch und die Forensuche brachten mich nicht weiter...

Auf https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=5372&highlight=datei+odbc32+lib+ge%F6ffnet
hatte mal jemand die Selbe Fehlemeldung in VC++ 05 EE, da wurde ihm geraten das platform SDK zu installieren, aber das hab ich doch schon...

EDIT:
So hab jetzt gesehn dass ich doch nicht alle teile des platform SDKs installiert hatte. Also, schwupps den Rest auf der Platte. Trotzdem erscheint im VC++ 05 EE immer noch ein Fehler. Dieser hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1>------ Erstellen gestartet: Projekt: SDL_Game, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Asteroid.cpp
1>Framework.cpp
1>Game.cpp
1>main.cpp
1>Player.cpp
1>Shot.cpp
1>Sprite.cpp
1>Timer.cpp
1>Code wird generiert...
1>Verknüpfen...
1>LINK : fatal error LNK1104: Datei "sdl.lib" kann nicht geöffnet werden.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Maximilian Sieß\Eigene Dateien\Visual Studio 2005\Kapitel 12\Debug\BuildLog.htm" gespeichert.
1>SDL_Game - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

10

16.02.2007, 14:07

Du hast scheinbar die SDL nicht richtig verlinkt. Also die lib datei.
Versuch malam Anfang, nach den includes

C-/C++-Quelltext

1
#pragma comment(lib, "sdl.lib")

Werbeanzeige