Reihenfolge der Includes?



  • ^Hallo
    ich hab folgendes problem ( also eigentlich ist es schon gelöst, doch ich weiss nicht so recht wieso das so ist...):
    ich versuch ne kleine DX9 anwendung mit winapi und c++ zu proggen, es steht alles, und dx wird auch ohne probleme initialisiert.
    das problem, ich hab 4 module, gameshell, gameroutine, dx9(initialisiert dx9), und scene(enthält die eigentliche szene).
    Hier jetzt der problem code, er steht oin der dx9.h:

    #include "d3d9.h"
    #include "d3dx9math.h"
    
    LPDIRECT3D9       g_pD3D;
    LPDIRECT3DDEVICE9 g_pD3DDevice;
    D3DFORMAT         g_BackBufferFMT;
    D3DXMATRIX        g_mProj;
    bool              g_bInitD3D      = false;
    
    void InitD3D();
    void RunD3D();
    void CleanUpD3D();
    void InitProjMatrix();
    
    extern int   color_depth;
    extern int   screen_width;
    extern int   screen_height;
    extern HWND  main_app_hwnd;
    extern bool  bwindowed;
    extern float view_aspect;
    extern float FrameSpeed;
    extern float fTimePassed;
    
    #include "Scene.h"
    

    wenn ich den code so schreibe, läuft alles problemlos,
    wenn ich ihn aber so:

    #include "d3d9.h"
    #include "d3dx9math.h"
    #include "Scene.h"
    
    LPDIRECT3D9       g_pD3D;
    LPDIRECT3DDEVICE9 g_pD3DDevice;
    D3DFORMAT         g_BackBufferFMT;
    D3DXMATRIX        g_mProj;
    bool              g_bInitD3D      = false;
    
    void InitD3D();
    void RunD3D();
    void CleanUpD3D();
    void InitProjMatrix();
    
    extern int   color_depth;
    extern int   screen_width;
    extern int   screen_height;
    extern HWND  main_app_hwnd;
    extern bool  bwindowed;
    extern float view_aspect;
    extern float FrameSpeed;
    extern float fTimePassed;
    

    schreibe, läuft er nich...

    ich benötige nur die g_pD3DDevice variable in Scene.h. wenn ich die 2 variante nehme, und dann in scene.h g_pD3DDevice als extern deklariere,. läuft es auch.
    meiner meinung nach ist das so:
    wenn ich die inlude darüber setze, kennt scene ja die definition von g_pD33DDevice nicht, wenn sie aber druntergesetzt wird, kennt er sie, und es kommt zu keinem fehler...

    bitte um bestätigung dieser Theorie!! 😉

    thx & mfg!! 🕶 🕶 👍 👍


Anmelden zum Antworten