Ich arbeite/überarbeite an/meine Engine. Ich habe nun eine Klasse CEngine die Functionen wie InitD3D, CleanUP und Render besitzt.
Nun habe ich die Render funktion als Functionszeiger definiert. Die Funktion muss aber auf einige Membervariabeln zugreifen die als private definiert sind.
Nun habe ich das Problem das meine IDE und der Compiler streiken.
Hier ist der Code:
Die Klasse
|
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
|
#include "Cookie.h"
class CEngine
{
private:
//HWND *m_hWnd;
LPDIRECT3D9 m_pD3D;
LPDIRECT3DDEVICE9 m_pD3DD;
protected:
public:
CEngine(LPDIRECT3D9 , LPDIRECT3DDEVICE9 );
~CEngine();
LRESULT InitD3D( HWND f_hWnd );
VOID (*Render) ();
VOID CleanD3D();
}
|
In der Funktion ( WinMain ) wird dann eine Instanz mit dem Namen Engine definiert.
|
C-/C++-Quelltext
|
1
|
CEngine Engine( g_pD3D, g_pD3DDEVICE );
|
Nun möchte ich die Renderfunktion definieren:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
VOID FRender()
{
Engine.m_pD3DD->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 255), 1.0f, 0);
if( Engine.m_pD3DD->BeginScene()
{
// Hier kommt das was rein kommen soll, render usw.
}
Engine.m_pD3DD->EndScene();
Engine.m_pD3DD->Present( NULL, NULL, NULL, NULL );
}
|
Ich nutze Funktionszeiger da ich die Engine-DLL später nicht verändern will, zudem will ich die Renderfunktion als Methode der Klasse CEngine verwenden.
Ich bin hier mit meinem Latein schon leider am Ende.
Hoffentlich gibt's eine Lösung für das Problem ...
Gruß SullY
EDIT: Das Problem ist die IDE die Membervariabeln plötzlich nicht kennt :\