Folgenden Fehlercode liefert mir die IDE:
|
Quellcode
|
1
2
|
1>Application.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall Direct3D::GetParamContainer(struct ParamContainer *)" (?GetParamContainer@Direct3D@@QAEXPAUParamContainer@@@Z)" in Funktion ""public: void __thiscall Application::Init(void)" (?Init@Application@@QAEXXZ)".
1>Application.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: struct IDirect3DDevice9 * __thiscall Direct3D::GetD3DD(void)" (?GetD3DD@Direct3D@@QAEPAUIDirect3DDevice9@@XZ)" in Funktion ""public: void __thiscall Application::Init(void)" (?Init@Application@@QAEXXZ)".
|
Hier der QuellCode:
Direct3D.hpp
|
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
|
#pragma once
#include <d3d9.h>
#include "Window.hpp"
struct ParamContainer
{
int VideoModeWidth;
int VideoModeHeight;
};
class Direct3D
{
public:
Direct3D ();
~Direct3D ();
void InitDirect3D ();
PDIRECT3D9 GetD3D ();
PDIRECT3DDEVICE9 GetD3DD ();
void GetParamContainer (ParamContainer *ParamContainer);
private:
void InitD3DD ();
void InitParamContainer ();
D3DMULTISAMPLE_TYPE GetHightestMultiSampling (PDIRECT3D9 D3D, DWORD* QualityLevel,
D3DFORMAT SurfaceFormat = D3DFMT_X8R8G8B8, BOOL Windowed = false);
PDIRECT3D9 D3D;
PDIRECT3DDEVICE9 D3DD;
ParamContainer ParamContainer;
Window MyWindow;
};
|
Application.hpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#pragma once
#include "TriBase.h"
#include "Direct3D.hpp"
class Application
{
public:
Application ();
~Application ();
void MessageLoop ();
void Init ();
private:
void Render (float Time);
void Move (float Time);
double GetFrequency ();
Direct3D MyDirect3D;
};
|
Und void Application::Init ()
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
void Application::Init ()
{
MyDirect3D.InitDirect3D ();
ParamContainer TempParams;
MyDirect3D.GetD3DD ()->SetFVF (D3DFVF_XYZ | D3DFVF_DIFFUSE);
MyDirect3D.GetD3DD ()->SetRenderState (D3DRS_LIGHTING, false);
MyDirect3D.GetD3DD ()->SetRenderState (D3DRS_CULLMODE, D3DCULL_NONE);
MyDirect3D.GetParamContainer (&TempParams);
float Aspect = static_cast<float> (TempParams.VideoModeWidth)
/static_cast<float> (TempParams.VideoModeHeight);
tbMatrix Projection = tbMatrixProjection (TB_DEG_TO_RAD (90.0f), Aspect, 0.1f, 100.0f);
MyDirect3D.GetD3DD ()->SetTransform (D3DTS_PROJECTION, (D3DMATRIX*) (&Projection) );
}
|
(Wenn es eine nicht eingebundene Lib ist, beiß ich mir in den Arsch, aber eigentlich müsste ich alles richtig gelinkt haben)