JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=2f8a5f1c245007cb69d1a74f27b37ec0Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit CDX

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Umsteiger
Mini JLI'ler



Anmeldedatum: 28.01.2003
Beiträge: 9

Medaillen: Keine

BeitragVerfasst am: 14.05.2003, 11:22    Titel: Problem mit CDX Antworten mit Zitat

hallo,
ich habe vor kurzem versucht etwas mit der cdx-lib zu machen.
Dazu habe ich mir die samples gleich mitgeladen und ausprobiert.
Doch da gabs ein paar Probleme:
bei jedem der Samples kommen immer wieder die selben fehlermeldungen.Vielleicht liegts ja auch an der version(vc++ 6.0) aber das sollte eigentlich nicht der fall sein,hier der code:

Code:
//////////////////////////////////////////////////////////////////////////////////
// $Source: /cvsroot/cdx/cdx3.0/src/cdx/cdxscreen.h,v $
// $Author: mindcry $
//
// $Log: cdxscreen.h,v $
// Revision 1.4  2000/08/24 19:11:25  mindcry
// Added the function GetFPS()
//
// Revision 1.3  2000/05/10 23:29:26  hebertjo
// Cleaned up all the old code that was commented out.  Version 3.0 is getting
// very close to release.
//
// Revision 1.2  2000/05/01 17:06:26  hebertjo
// Many small changes.  Fixed a few problems identified by BoundsChecker.
// Removed some old code that was commented out.  Cleaned up the look of
// some of the code.
//
// Revision 1.1.1.1  2000/04/22 16:11:27  hebertjo
// Initial checkin of v3.0 to SourceForge CVS.
//
// Revision 2.21  2000/01/19 23:18:38  jhebert
// Added the ChangeVideoMode() function.
//
// Revision 2.20  2000/01/13 23:36:33  jhebert
// First checkin for v3.0.  I still have one major function I want to add but
// otherwise it is pretty much complete. Changes:
//    - Added headers to all functions
//    - fixed a few problems in the destructor
//    - added friend functions to CDXSurface to be able to access private data
//
//
// $Revision: 1.4 $
//////////////////////////////////////////////////////////////////////////////////
#ifndef CDXSCREEN_H
#define CDXSCREEN_H

#include "cdxclist.h"
#include "cdx.h"

// structure for videomodes
typedef struct
{
    DWORD Width;
    DWORD Height;
    DWORD BPP;
    void* NextMode;
} CDX_VIDEOMODESSTRUCT;

// fix for those strange DDRAW header files where it is missing
#ifndef MAX_DDDEVICEID_STRING
   #define MAX_DDDEVICEID_STRING 512
#endif

// structure for direct draw drivers
struct CDX_DRIVERSTRUCT
{
   LPGUID   lpGUID;
   GUID   guid;
   char   lpName[MAX_DDDEVICEID_STRING];
   char   lpDesc[MAX_DDDEVICEID_STRING];
   DDCAPS   DDcaps;
    DDCAPS  HELcaps;

#if DIRECTDRAW_VERSION >= CDX_DDVER
   HMONITOR hMonitor;
#endif

   CDX_DRIVERSTRUCT *NextDriver;
};
      
// callback function for video mode enumeration, implemented in ddutils.cpp
HRESULT CALLBACK EnumDisplayModesCallback( CDX_LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext  );

// callback function for devices enumeration, implemented in ddutils.cpp
#if DIRECTDRAW_VERSION >= CDX_DDVER
BOOL WINAPI DDEnumCallback( GUID FAR *lpGUID, LPSTR lpDesc, LPSTR lpName, LPVOID lpContext, HMONITOR hm );
#else
BOOL WINAPI DDEnumCallback( GUID FAR *lpGUID, LPSTR lpDesc, LPSTR lpName, LPVOID lpContext );
#endif

// Forward declaration of CDXSurface needed by the CDXScreen class
class CDXAPI CDXSurface;

//////////////////////////////////////////////////////////////////////////////////
// CDXScreen is the primary object of the library and every program that
// uses CDX must include a CDXScreen object.  As the name implies CDXScreen
// contains all the functions necessary to control the video display,
// currently this also includes functions to control the palette.
//////////////////////////////////////////////////////////////////////////////////
class CDXAPI CDXScreen
{
public:
   CDXScreen();
   virtual ~CDXScreen();

   HRESULT CreateFullScreen(void* hWnd, DWORD Width, DWORD Height, DWORD BPP, BOOL bVGA = FALSE);
   HRESULT CreateWindowed(void* hWnd, int Width, int Height);
   HRESULT LoadBitmap(const char* szFilename);
   HRESULT LoadPalette(const char* szFilename);
   HRESULT Fill(DWORD FillColor);
   HRESULT Restore(void);
   HRESULT Flip(BOOL VSync=TRUE, BOOL FlipWithStretch=TRUE, BOOL displayFPS = FALSE);
   HRESULT SetColor(int col, int r, int g, int b);
   HRESULT GetColor(int col, int* r, int* g, int* b);
   HRESULT SetPalette(int Start, int Count, LPPALETTEENTRY lpPE);
   HRESULT GetPalette(int Start, int Count, LPPALETTEENTRY lpPE);
   HRESULT FillPalette(int r, int g, int b);
   HRESULT GreyScale(void);
   HRESULT FadeIn(int delay, LPPALETTEENTRY lpPE);
   HRESULT FadeOut(int delay);
   HRESULT FadeTo(int r, int g, int b, int delay);
   int     GetWidth(void)  { return m_dwPixelWidth; }
   int     GetHeight(void) { return m_dwPixelHeight; }
   int     GetBPP(void)    { return m_BPP; }
   CDXSurface* GetFront(void) { return m_lpDDSFront; }
   CDXSurface* GetBack(void) { return m_lpDDSBack; }
   LPDIRECTDRAWPALETTE GetPalette(void) { return m_lpDDPalette; }
    DWORD   GetNumberOfVideoModes( void );
    BOOL    GetVideoModeInformation( DWORD Index, DWORD* Width , DWORD* Height , DWORD* BPP );
    BOOL    CheckIfVideoModeExists( DWORD Width, DWORD Height , DWORD BPP );
   HRESULT WaitForVerticalBlank( void );
   void    CreateBackBufferInVRAM( BOOL Flag ) { m_BackBufferInVRAM = Flag; };
   void    SetTripleBuffering( BOOL Flag ) { m_TripleBuffering = Flag; }
   BOOL    GetTripleBuffering( void ) { return m_TripleBuffering; }
    HRESULT ChangeVideoMode(DWORD Width, DWORD Height,DWORD BPP, BOOL bVGA = FALSE);
    DWORD   MakeColor( DWORD Color , CDXSurface* Surface = NULL );
   void    AddSurfaceToList( CDXSurface* Surface );
   void    ReleaseAllSurfaces( void );
   void    ReleaseSurfaceFromList( CDXSurface* Surface );
   HRESULT SelectDriver( DWORD Index );
   HRESULT FadeToBlack(WORD duration);
   HRESULT FadeToSource(WORD duration);
    BOOL    IsFullScreen(void) {return m_bFullScreen;}
    void*   GetWindowHandle(void) {return m_hWnd;}
   CDX_LPDIRECTDRAW GetDD(void) { return m_lpDD; }
    HRESULT SaveAllSurfaces(void);
    HRESULT ReloadAllSurfaces(void);
    LONG    GetNextId(void);
   LONG    GetFPS(void) {return m_fps;}

protected:
    void    InitCDXScreen();
   HRESULT EnumVideoModes( void );
   HRESULT EnumDrivers( void );
    void    SetSurfaceScreen(CDXSurface* surface);
    void    SetSurfacePixelFormat(CDXSurface* surface);
    void    SetSurfaceWidth(CDXSurface* surface, int w);
    void    SetSurfaceHeight(CDXSurface* surface, int h);
   void    SetSurfaceDDSPointer(CDXSurface* pCDXS, CDX_LPDIRECTDRAWSURFACE lpdds);

private:

   CDX_LPDIRECTDRAW          m_lpDD;              // the DirectDraw object
    CDX_LPDIRECTDRAWSURFACE   m_ZBuffer;           // Zbuffer surface pointer
   CDXSurface*            m_lpDDSFront;           // a CDXSurface object for the front buffer
   CDXSurface*            m_lpDDSBack;            // a CDXSurface object for the back buffer
   LPDIRECTDRAWPALETTE    m_lpDDPalette;          // the DirectDraw palette object
   LPDIRECTDRAWCLIPPER    m_lpClipper;            // the DirectDraw clipper, used for window mode only
   DWORD                  m_dwPixelWidth;         // the screen width, in pixels
   DWORD                  m_dwPixelHeight;        // the screen height, in pixels
   DWORD                  m_BPP;                  // bits per pixel (colour depth)
   void*                  m_hWnd;                 // pointer to the HWND handle of the window
   BOOL                   m_bFullScreen;          // is the program running in fullscreen mode?
    DWORD                  m_NumberOfVideoModes;   // number of video modes the video adapter supports
    CDX_VIDEOMODESSTRUCT*  m_VideoModes;           // linked list with all video modes informations
   BOOL                   m_TripleBuffering;      // is triple buffering enabled ?
   BOOL                   m_BackBufferInVRAM;     // Should the back buffer be placed in video memory?
    DWORD                  m_NumberOfDrivers;      // number of grafikcards installed
    CDX_DRIVERSTRUCT*      m_Drivers;              // linked list with grafikcard informations
    DWORD                  m_SelectedDriver;       // Which driver will be used for creating DirectDraw
   DWORD                  m_frameCount;           // A count of how many times you have called Flip()
   DWORD                  m_accumulatedFrameTime; // How long since the last time you called Flip()
   DWORD                  m_frameStartTime;       // The time when the frame started
   LONG                   m_fps;                  // The frames per second rate
    CDXCList<CDXSurface>   m_SurfaceList;          // Keeps track of all CDXSurfaces created
    static LONG            m_lastId;
   
};

#endif


und hier die fehlermeldungen:
Code:
--------------------Konfiguration: ex1 - Win32 Debug--------------------
Kompilierung läuft...
ex1.cpp
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(65) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'hMonitor'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(65) : error C2501: 'HMONITOR' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(65) : error C2501: 'hMonitor' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(72) : error C2065: 'LPDDSURFACEDESC2' : nichtdeklarierter Bezeichner
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(72) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'lpDDSurfaceDesc'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(72) : warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(72) : error C2059: Syntaxfehler : ')'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(76) : error C2061: Syntaxfehler : Bezeichner 'HMONITOR'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(135) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetDD'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(135) : error C2501: 'LPDIRECTDRAW7' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(135) : warning C4183: 'GetDD': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(149) : error C2061: Syntaxfehler : Bezeichner 'LPDIRECTDRAWSURFACE7'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(153) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_lpDD'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(153) : error C2501: 'LPDIRECTDRAW7' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(153) : error C2501: 'm_lpDD' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(154) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_ZBuffer'
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(154) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxscreen.h(154) : error C2501: 'm_ZBuffer' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(246) : error C2061: Syntaxfehler : Bezeichner 'LPDDSURFACEDESC2'
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(247) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetDDS'
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(247) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(247) : warning C4183: 'GetDDS': Definition der Member-Funktion sieht aus wie ctor, aber der Name entspricht nicht der umschliessenden Klasse
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(256) : error C2061: Syntaxfehler : Bezeichner 'LPDIRECTDRAWSURFACE7'
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(263) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_DDSD'
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(263) : error C2501: 'DDSURFACEDESC2' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(263) : error C2501: 'm_DDSD' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(264) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_lpDDS'
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(264) : error C2501: 'LPDIRECTDRAWSURFACE7' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxsurface.h(264) : error C2501: 'm_lpDDS' : Fehlende Speicherklasse oder Typbezeichner
c:\programme\microsoft visual studio\vc98\include\cdxmidi.h(47) : fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'dmksctrl.h': No such file or directory
Fehler beim Ausführen von cl.exe.

ex1.exe - 27 Fehler, 3 Warnung(en)


woran liegt das?

PS:kennt einer von euch ein paar gute cdx-tuts`?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ciceri
Super JLI'ler


Alter: 36
Anmeldedatum: 26.08.2002
Beiträge: 418
Wohnort: Wischhafen/in der nähe Hamburgs
Medaillen: Keine

BeitragVerfasst am: 14.05.2003, 12:39    Titel: Antworten mit Zitat

mmh 2 sachen:

1. die moderatoren lieben es nicht, wenn man solange themen schreibt, zumidnest einfach den quellcode reinahut, hatten mich schonmal ermahnt
2.hast mit sicherheit einige lib datein nicht mit eingebunden. ich habe mir zwar nciht alles angeguckt, aber bei so wenig quellcode und 27/3 fehlern.
_________________
www.z-software.de
Spieleentwicklung-Pur
Besuchen Sie uns.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 14.05.2003, 13:01    Titel: Antworten mit Zitat

Also wenn du DirectDraw benutzt musst du auf jeden Fall den Header 'ddraw.h' einbinden. Falls es dann immer noch nicht funktioniert, musst du die Pfade überprüfen, wo die Header zu finden sind.
Dann hast du schon eine große Anzahl Fehler weniger.
Die Meldung, dass für 'HMONITOR' eine Speicherklasse oder ein Typbezeichner fehlt, lässt mich vermuten, dass du dafür auch einen speziellen Header brauchst(versuchs vielleicht mal mit 'windows.h').
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Umsteiger
Mini JLI'ler



Anmeldedatum: 28.01.2003
Beiträge: 9

Medaillen: Keine

BeitragVerfasst am: 14.05.2003, 13:07    Titel: Antworten mit Zitat

danke für die schneller antworten...wegen dem langen thread sorry,aber ich kann mir einfach nicht vorstellen wo der/die fehler sein kann...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 14.05.2003, 13:52    Titel: Antworten mit Zitat

Es werden entweder die falschen oder keine DX-Header verwendet. Guck doch mal unter Extras->Optionen->Verzeichnisse nach. Achte auch drauf, dass die Verzeichnisse ganz oben stehen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Umsteiger
Mini JLI'ler



Anmeldedatum: 28.01.2003
Beiträge: 9

Medaillen: Keine

BeitragVerfasst am: 14.05.2003, 14:55    Titel: Antworten mit Zitat

hm...das war es leider auch nicht,die verzeichnisse von inc\lib etc. haben schon gestimmt.Ich lade mir einfach eine ältere version von cdx herunter,denn in meiner jetzigen version fehlen einfach ein paar header.
aber trotzdem thx Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum