Hey Leute
Bin momentan am Buch dran, hat auch bis jetzt alles super geklappt.
Jetzt bekam ich aber eben einen error über 2 extern nicht aufgelöste verweise.
Der Quellcode ist 1 zu 1 bearbeitet, alle Dateien sind included, resource befindet sich im gleichen Ordner, dll ist auch vorhanden für die debug version.
Hier zuerst mal der Quellcode
|
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
// Kapitel 2
// Beispielprogramm 02
// ===================
// Auflisten aller Direct3D-Optionen und anschließende Erstellung
// einer Geräteschnittstelle (IDirect3DDevice9).
// Zu den Optionen gehören unter anderem:
// - Adapter und Gerätetyp
// - Videomodi
// - Multi-Sampling-Typen und -Qualitätsstufen
// - Hardware- oder Softwareverarbeitung?
#include <Windows.h>
#include <TriBase.h>
#include "..\\..\\Beispielprogramme\\Allgemeines\\InitWindow.h"
#include "..\\..\\Beispielprogramme\\Allgemeines\\Direct3DEnum.h"
#include "..\\..\\Beispielprogramme\\Allgemeines\\InitDirect3D.h"
#include "Resource.h"
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
// ******************************************************************
// Render-Funktion
tbResult Render(float fNumSecsPassed)
{
return TB_OK;
}
// ******************************************************************
// Move-Funktion
tbResult Move(float fNumSecsPassed)
{
return TB_OK;
}
// ******************************************************************
// Windows-Hauptfunktion
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
char* pcCmdLine,
int iShowCmd)
{
SDirect3DParameters Direct3DParameters;
tbResult Result;
// TriBase-Engine initialisieren
tbInit();
// Direct3D-Optionen abfragen (vom Benutzer gewählt)
Result = GetDirect3DParameters(&Direct3DParameters);
if(Result == TB_ERROR)
{
// Es trat ein Fehler auf!
MessageBox(NULL, "Fehler beim Abzählen!", "Fehler",
MB_OK | MB_ICONEXCLAMATION);
tbExit();
return 1;
}
else if(Result == TB_CANCELED)
{
// Der Dialog wurde abgebrochen!
tbExit();
return 0;
}
// Fenster initialisieren. Die Größe hängt vom gewählten
// Videomodus ab, der in der Parameterstruktur gespeichert ist.
if(InitWindow(Direct3DParameters.VideoMode.Width,
Direct3DParameters.VideoMode.Height,
"Beispielprogramm Nr. 2: Direct3D-Abzählung",
LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1))))
{
// Fehler beim Erstellen des Fensters!
MessageBox(NULL, "Fehler beim Erstellen des Fensters!",
"Fehler", MB_OK | MB_ICONEXCLAMATION);
tbExit();
return 1;
}
// Direct3D mit den abgefragten Einstellungen initialisieren
if(InitDirect3D(&Direct3DParameters,
g_hWindow))
{
// Fehler!
MessageBox(g_hWindow, "Fehler beim Initialisieren von Direct3D!",
"Fehler", MB_OK | MB_ICONEXCLAMATION);
ExitWindow();
tbExit();
return 1;
}
// Nachrichtenschleife
tbDoMessageLoop(Render, Move);
// Direct3D und Fenster herunterfahren
ExitDirect3D();
ExitWindow();
// Engine herunterfahren
tbExit();
return 0;
}
|
Der Error ist wie folgt:
|
Quellcode
|
1
2
3
|
1>InitDirect3D.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_DXGetErrorStringA@4" in Funktion ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)".
1>InitDirect3D.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_DXGetErrorDescriptionA@4" in Funktion ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)".
1>C:\Dokumente und Einstellungen\Leridon\Desktop\Tribase\3D-Spieleprogrammierung-Update\Eigene Projekte\Window\Window (Debug).exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
|
Nach erneutem durchschauen nun mehr fehler
|
Quellcode
|
1
2
3
4
5
|
1>Direct3DEnum.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_Direct3DCreate9@4" in Funktion ""enum tbResult __cdecl GetDirect3DParameters(struct SDirect3DParameters *)" (?GetDirect3DParameters@@YA?AW4tbResult@@PAUSDirect3DParameters@@@Z)".
1>InitDirect3D.obj : error LNK2001: Nicht aufgelöstes externes Symbol "_Direct3DCreate9@4".
1>InitDirect3D.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_DXGetErrorStringA@4" in Funktion ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)".
1>InitDirect3D.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_DXGetErrorDescriptionA@4" in Funktion ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)".
1>C:\Dokumente und Einstellungen\Leridon\Desktop\Tribase\3D-Spieleprogrammierung-Update\Eigene Projekte\Window\Window (Debug).exe : fatal error LNK1120: 3 nicht aufgelöste externe Verweise.
|
Ich hoffe ihr könnt mir da helfen
Gruß Leri