Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » DirectX » Komischer fehler im code (DirectDraw)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
31.10.2004, 23:36 Uhr
RedEagle



Hab im Netz nen tollen code zu DirectDraw 7 gefunden, aber leider kommt hier nen Fehler


C++:
#pragma comment(lib, "ddraw.lib")
#pragma comment(lib, "dxguid.lib")

#include <windows.h>
#include <ddraw.h>

HWND        hWnd;
HINSTANCE    hInstance;
bool        Done = false;
bool        Keys[256];        // stores keyboard input

LPDIRECTDRAW7 lpDD7=NULL;  /////////////////////////////////// HIER KOMMT DER FEHLER
LPDIRECTDRAWSURFACE7 lpDDSPrimary=NULL;



error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'lpDD7'
error C2501: 'LPDIRECTDRAW7' : Fehlende Speicherklasse oder Typbezeichner
fatal error C1004: Unerwartetes Dateiende gefunden
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.11.2004, 09:27 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


evtl irgendwelche dx-header vergessen? schau mal im dx-sdk wo LPDIRECTDRAW7 definiert ist
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.11.2004, 09:44 Uhr
RedEagle



HÄ?? wo ist den "dx-sdk"?? Und was ist das??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.11.2004, 10:18 Uhr
RedEagle



Ich habe mir jetzt mal nen Einfachen code geholt (gefunden), aber an genau den selben stellen tritt der Fehler auf.

Hab ich evtl was mit den libs nicht richtig gemacht??


C++:
#pragma comment(lib, "ddraw.lib")
#pragma comment(lib, "dxguid.lib")

#define WIN32_LEAN_AND_MEAN     // MFC abschalten (Nur unn?tiger Ballast)
#include <windows.h>                              
#include <ddraw.h>          



und dann hab ich die 2 libs auch nochmal in dem "Projekteinstellungen" eingetragen
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.11.2004, 11:07 Uhr
Tommix




Zitat von RedEagle:
HÄ?? wo ist den "dx-sdk"?? Und was ist das??

link

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.11.2004, 11:32 Uhr
RedEagle



Ich bin auf diese Bild gestoßen:
http://msdn.microsoft.com/archive/en-us/directx9_c/directx/Art/msvcdlg1.jpg

so nen Pfad hab ich nciht, muss ich erst etwas installieren, um mit DX arbeiten zu können??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.11.2004, 12:33 Uhr
RedEagle



Ich hab mir jetzt was für DEV-CPP runtergeladen, um auch damit DX8 zu benutzen, und schon hab ich es erstmal auch ein Linker-Error reduziert:

[Linker error] undefined reference to `IID_IDirectDraw7'

Welche lib brauch ich dafür??

ps.: ist jetzt NICHT mehr VC++ => bitte verschieben
--
MFG RedEagle

Dieser Post wurde am 01.11.2004 um 12:33 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.11.2004, 12:52 Uhr
RedEagle



Dank DEV-CPP läuft allerdings sieht man nicht (außer im Task-manager)
hier mal der Komplette code:

C++:
//////////////////// Main.cpp ////////////////////

//#pragma comment(lib, "ddraw.lib") // jetzt verwende libddraw.a  von DEV-CPP
//#pragma comment(lib, "dxguid.lib") // jetzt verwende libdxguid.a von DEV-CPP

#define WIN32_LEAN_AND_MEAN     // MFC abschalten (Nur unnötiger Ballast)
#include <windows.h>  
#include <dx\ddraw.h>                          

LPDIRECTDRAW7 DirectDraw;           // Pointer auf das DirectDraw-Object
HRESULT       ddrval;               // Wichtig für unsere Rückgabewerte

LRESULT CALLBACK WindowProc (HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
  switch (message)
  {
  
   case WM_DESTROY:
    {
     DirectDraw->Release();
     DirectDraw = NULL;
     PostQuitMessage(0);
     return(0);
    }
     break;

    default: break;
  }
  return (DefWindowProc(hwnd,message,wparam,lparam));
}


int WINAPI WinMain(HINSTANCE hinst,HINSTANCE hprevinst,LPSTR lpcmdline,int ncmdshow)
{
WNDCLASSEX winclass;   // Die Fensterstruktur
HWND       hwnd;
MSG        message;
const char szclassname[]="Klassenname";

winclass.cbSize        = sizeof (WNDCLASSEX);
winclass.style         = CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc   = WindowProc;
winclass.cbClsExtra    = 0;
winclass.cbWndExtra    = 0;
winclass.hInstance     = hinst;
winclass.hIcon         = LoadIcon (NULL,IDI_APPLICATION);
winclass.hCursor       = LoadCursor(NULL,IDC_ARROW);
winclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winclass.lpszMenuName  = NULL;
winclass.lpszClassName = szclassname;

//HIER HABE ICH DEN ERSTEN PARAMETER BEAREITET
hwnd = CreateWindowEx (/*NULL*/WS_EX_APPWINDOW, szclassname, "Titelleiste", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinst, NULL);

ShowWindow(hwnd,ncmdshow);
UpdateWindow(hwnd);


ddrval = DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, NULL);
ddrval = DirectDraw->SetCooperativeLevel (hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);

ddrval = DirectDraw->SetDisplayMode (800,600,16, 0, 0);

while (GetMessage(&message,NULL,0,0))
{
     TranslateMessage(&message);
    DispatchMessage(&message);
}
return message.wParam ;
}


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
05.11.2004, 12:49 Uhr
~DerDachs
Gast


Hallo RedEagle..

Dieses Problem ist keins, weil du musst dir erst das DX-SDK von Microsoft Installieren
also 7,8,oder9

Nun darfst du nicht vergessen die Verzeichnisse anzumelden bei VC6:

Optionen | Verzeichnisse -> da musst du die LIBS und die Includes registrieren, also die Pfade zu SDK\LIB oder SDK\Include

wenn du das hast, kannst du in deinem Neuen Project
die linkereinstellungen treffen dxdraw.lib, dxguid.lib und was man so gerade davon braucht
ohne geht es nicht du musst hinlinken.....

Aber manchmal gibt es abwärtsprobleme, welche folgendermaßen aussehen,

manchmal werden funktionen vom SDK-Ersetzt also DX8 ersetzt per include DX7Funcs und setzt diese womöglich ausser kraft, in diesem Fall einfach die 8-Funktionen benutzen und es funzt.. ist nun mal so....


ciao...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
09.11.2004, 18:50 Uhr
RedEagle



Ich hab die VC++ libs gegen DEV-CPP libs ausgetauscht, und noch nen paar funktionen dazu geschrieben und dann funktionierte es (Lag wohl am Tutorial )
--
MFG RedEagle

Dieser Post wurde am 09.11.2004 um 18:51 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ DirectX ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: