Ich hab ein paar probleme mit meinem Quellcode basierend auf dem Beispiel auf Seite 129.
Ich habe die aktuelle Version aus dem Download verwendet. Visual C++ zeigt mir auch keine Fehler an...
Fehlermeldung beim compalieren:
1>------ Erstellen gestartet: Projekt: Fenster, Konfiguration: Debug Win32 ------
1> Versuche eine harte Verknuepfung zu erzeugen ...
1> Feste Verknüpfung erstellt für C:\Users\dettmant\Documents\TriBase-Programmierung\Eigene Projekte\Fenster\TriBaseD.dll <<===>> C:\Users\dettmant\Documents\TriBase-Programmierung\TriBase\Bin\TriBaseD.dll
1> OK.
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitDirect3D(void)" (?ExitDirect3D@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)" in Funktion "_WinMain@16".
1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""struct HWND__ * g_hWindow" (?g_hWindow@@3PAUHWND__@@A)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)" in Funktion "_WinMain@16".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl GetDirect3DParameters(struct SDirect3DParameters *)" (?GetDirect3DParameters@@YA?AW4tbResult@@PAUSDirect3DParameters@@@Z)" in Funktion "_WinMain@16".
1>C:\Users\dettmant\Documents\TriBase-Programmierung\Debug\Fenster.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Quelltext:
|
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
|
#include <Windows.h>
#include <TriBase.h>
#include "../Allgemeines/InitWindow.h"
#include "../Allgemeines/Direct3DEnum.h"
#include "../Allgemeines/InitDirect3D.h"
#include "../Allgemeines/Resource.h"
// ******************************************************************
// 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;
}
|