Hallo
also einige kennen vl das beispiel.
es soll ein fenster erstellen, aber bevor es das tut, wird mit hilfe von direct3d abgefragt welche größe etc. das fesnter haben soll.
tja das projekt brauch 2 ressourcen dateien und da die nicht beide gleichzeitig aktiv sein können (da gibts ne fehlermedlung) steht im buch:
fügen sie die zeile #include "..\..\Allgemeines\Allgemeines.rc" ganz an den anfang ihrer eigenen ressourcendatei ein, falls sie eine benutzen
1) das krig ich schon mal nicht zusammen, deswegen wollt ich mal fragen, ob das so wie ich das mache auch geht.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
/* Erstes Fenster
* Version: 1.0
* Autor: Simon Klausner */
#include <Windows.h>
#include <TriBase.h>
#include "InitWindow.h"
#include "Direct3DEnum.h"
#include "InitDirect3D.h"
#include "Resource.h"
//Renderfunktion
tbResult Render(float fNumSecsPassed)
{
return TB_OK;
}
//Movefunktion
tbResult Move(float fNumSecsPassed)
{
return TB_OK;
}
//****************************************************************************************************
//Hauptprogramm
//Erstellt Fenster und Nachrichtenschleife
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* pcCmdLine, int iShowCmd)
{
//Engine Initialisierung
tbInit();
//Direct 3D Optionen abfragen
SDirect3DParamteres Direct3DParameters;
tbResult Result = GetDirect3DParameters(&Direct3DParameteres);
if(Result == TB_ERROR)
{
MessageBox(NULL, "Fehler beim Abzählen.", "Fehler", MB_OK | MB_ICONEXCLAMATION);
tbExit();
return 1;
}
else if(Result == TB_CANCELED)
{
tbExit();
return 0;
}
//Fenster initialisieren mit gewähltem Modus
if(InitWindow (Direct3DParameters.VideoMode.Width,
Direct3DParameters.VideoMode.Height,
"Circle of the Druids", LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1))))
{
MessageBox(NULL, "Fehler beim Erstellen des Fensters.", "Fehler", MB_OK | MB_ICONEXCLAMATION);
tbExit();
return 1;
}
//Direct3D mit abgefragten Einstellungen initialisieren
if(InitDirect3D(&Direct3DParameters, g_hWindow))
{
MessageBox(NULL, "Fehler beim Initialisieren von Direct3D.", "Fehler", MB_OK | MB_ICONEXCLAMATION);
ExitWindow();
tbExit();
return 1;
}
//Nachrichtenschleife
tbDoMessageLoop(Render, Move);
//Fenster und D3D herunterfahren
ExitDirect3D();
ExitWindow();
//Engine herunterfahren
tbExit();
return 0;
}
|
einfach in der quellcodedatei per #include einfügen?
scheint irgendwie zu gehen, weil der fehler mit den SDirect3DParamteres verschwindet, aber jetzt hab ich folgenden fehler vorliegen
--------------------Konfiguration: Fenster mit D3D - Win32 Debug--------------------
Kompilierung läuft...
Fenster.cpp
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2065: 'SDirect3DParamteres' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Direct3DParameters'
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2065: 'Direct3DParameters' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(36) : error C2065: 'Direct3DParameteres' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(52) : error C2228: Der linke Teil von '.VideoMode' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(52) : error C2228: Der linke Teil von '.Width' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(53) : error C2228: Der linke Teil von '.VideoMode' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(53) : error C2228: Der linke Teil von '.Height' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(54) : error C2065: 'IDI_ICON1' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.
Fenster.obj - 9 Fehler, 0 Warnung(en)
vermutlich wird irgendetwas in das projekt nicht eingefügt, weil ich bezweifle, dass ein ";" fehlt in den dateien von direct3d
falls ihr diese infos auch noch braucht:
-tribased.lib ist im linker
-d3d9.lib ebenfalls
-dxerr9.lib ebenso
-die ressourcedateien sind im projekt hinzugefügt
-die ganzen wichtigen cpp und headerdateien sind im ordner des projekts und im projekt selbst auch hinzugefügt
also hilfe bitte
![:)](wcf/images/smilies/smile.png.pagespeed.ce.cw1CRsMB0z.png)
ich denk es liegt trotzdem an den ressourcedateien, aber weiß es eben ned
mfg
Drac