Problem mit DirectX



  • Hi Leute, ich bin gerade echt am Verzweifeln, deshalb wende ich mich jetzt mal wieder an euch 😃
    Ich bin gerade dabei, meinen Quelltext von DX7 auf DX8 zu portieren. In einer der Dateien hab ich den Header <d3d8.h> eingebunden. Die Verzeichnisse sind auch richtig eingestellt und gelinkt hab ich zusätzlich

    • dxguid.lib
    • d3d8.lib
    • d3dxof.lib

    Troztdem beschwert sich mein Compiler und kennt Dinge wie LPDIRECT3D8 oder LPDIRECT3DSURFACE8 nicht...woran kann das liegen???

    Mfg, smasher1985

    [ Dieser Beitrag wurde am 26.03.2003 um 16:28 Uhr von smasher1985 editiert. ]



  • Original erstellt von smasher1985:
    In einer der Dateien hab ich den Header <d3d8.h> eingebunden. Die Verzeichnisse sind auch richtig eingestellt und gelinkt hab ich zusätzlich...

    Also wenn die Verzeichnisse wirklich stimmen und du richtig gelinkt hast, hast du wohl nicht überall wo erforderlich die benötigten Header eingebunden 🙄 (btw wieso nur in einer der Dateien 😕 )



  • Zeig' doch mal den Code-Ausschnitt. Irgendwo fehlt wohl was.



  • OK, ich geb zu, ich hab mich etwas schlecht ausgedrückt...ich bezog mich nur auf EINE der Dateien, in den anderen ist es aber genau das gleiche Problem. Hier meine Datei (natürlich gekürzt *g*)

    /* ----------------------------------------------------------------------------
    global.h
    */
    
    // DEFINITIONS //////////////////////////////////////////////////////////////
    
    #define D3D_OVERLOADS
    #define NOT_FOUND           999999
    
    // INCLUDES /////////////////////////////////////////////////////////////////
    
    #include <windows.h>
    #include <string>
    #include <vector>
    #include <fstream>
    
    #include <d3d8.h>
    #include <d3dxmath.h>
    #include <ddraw.h>
    #include <Dxfile.h>
    
    #include "help.h"
    
    using namespace std;
    
    // ... ab hier gekürzt ...
    
    LPDIRECT3D8             m_pDirect3D;
    
    // ... und wieder gekürzt ...
    

    Hier kommt jetzt folgender Fehler:

    F:\Smasher\Programmierung\C++\ScriptX3D_1\global.h(206) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_pDirect3D'
    F:\Smasher\Programmierung\C++\ScriptX3D_1\global.h(206) : error C2501: 'LPDIRECT3D8' : Fehlende Speicherklasse oder Typbezeichner
    F:\Smasher\Programmierung\C++\ScriptX3D_1\global.h(206) : error C2501: 'm_pDirect3D' : Fehlende Speicherklasse oder Typbezeichner

    An Libs hab ich eingebunden: d3d8.lib, dxguid.lib

    Mfg, Smasher1985



  • Lass mal dxguid.lib raus.



  • ändert nix 😞



  • Es liegt nicht da an den Libs da er die Typen nicht kennt!
    /€ und wieder 100 Posts mehr ...
    /€2: Ausserdem meldet er ja auch nen Parse Error poste mal die paar Zeilen vor dem Fehler mit.
    [ Dieser Beitrag wurde am 28.03.2003 um 20:14 Uhr von Lars editiert. ]

    [ Dieser Beitrag wurde am 28.03.2003 um 20:15 Uhr von Lars editiert. ]



  • Ähnlicher Code funktioniert bei mir. Unterschied zum (gezeigten) Code ist nur, das ich nicht so viele Header include, nur d3d8.h und das ich kein using namespace habe. Weiterhin kann es also nur an dem restlichen Code (unwahrscheinlich) oder den Compilereinstellungen (auch unwahrscheinlich!) liegen. Am Linker nicht (*beton*). Bist du sicher, das du beide Codeausschnitte aus der selben Datei kopiert hast (g vs. m) ?



  • so, danke vielmals an Alle, hab meinen Fehler gefunden. Es lag tatsächlich an einem der eingebundenen Header, in dem noch die alte <d3d.h> eingebunden wurde.

    Mfg, smasher1985


Anmelden zum Antworten