JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

DirectD3D Fehler Problem

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



Anmeldedatum: 17.09.2004
Beiträge: 28

Medaillen: Keine

BeitragVerfasst am: 25.09.2004, 09:46    Titel: DirectD3D Fehler Problem Antworten mit Zitat

Erstmal code:
Code:

#include <d3d9.h>
#include <d3dx9.h>

HWND CreateMainWindow(HINSTANCE hInstance);

LRESULT CALLBACK MessageHandler(HWND hWnd,
                        UINT msg,
                        WPARAM wParam,
                        LPARAM lParam);

BOOL InitDirect3D(HWND hWnd);

void CleanUpDirect3D(void);

LPDIRECT3D9 lpD3D = NULL;

LPDIRECT3DDEVICE9 lpD3DDevice = NULL;

HWND hWnd=0;

int WINAPI WinMain(HINSTANCE hInstance,
               HINSTANCE hPrevInstance,
               LPSTR lpCmdLine,
               int nCmdShow)
{   
   hWnd=CreateMainWindow(hInstance);

   if(0 == hWnd)
   {
      MessageBox(0,"Fenster konnte nicht erzeugt werden","Fehler",MB_OK);
        return -1;
   }

   if(!InitDirect3D(hWnd))
   {
      return -1;
   }

   MSG msg;

   while(GetMessage(&msg,NULL,0,0))
   {
      
      TranslateMessage(&msg);
      DispatchMessage(&msg);
   }

   CleanUpDirect3D();
   
   return 0;
}

HWND CreateMainWindow(HINSTANCE hInstance)
{
   WNDCLASSEX wndClass =
   {
      sizeof(WNDCLASSEX),
      CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW,
      MessageHandler,
      0,
      0,
      hInstance,
      LoadIcon(NULL, IDI_WINLOGO),
      LoadCursor(NULL, IDC_ARROW),
      (HBRUSH)GetStockObject(WHITE_BRUSH),
      NULL,
      "WindowClass",
      LoadIcon(NULL, IDI_WINLOGO)
   };
   
   RegisterClassEx(&wndClass);

   return CreateWindowEx(NULL,
                  "WindowClass",
                  "Ein einfaches Fenster",
                  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                  100,
                  200,
                  100,
                  200,
                  NULL,
                  NULL,
                  hInstance,
                  NULL);
}

LRESULT CALLBACK MessageHandler(HWND hWnd,
                        UINT msg,
                        WPARAM wParam,
                        LPARAM lParam)
{
   D3DCOLOR ClearColor = D3DCOLOR_XRGB(0,0,0xFF);

   switch(msg)
   {
      case WM_CLOSE:
            PostQuitMessage(0);
            return 0;
         break;

      case WM_KEYDOWN:
         switch(wParam)
         {
                 case VK_ESCAPE:
                  DestroyWindow(hWnd);
               break;
         }
      case WM_PAINT:
            lpD3DDevice->Clear(0,0,D3DCLEAR_TARGET, ClearColor, 0, 0);

            lpD3DDevice->BeginScene();
            lpD3DDevice->EndScene();

            lpD3DDevice->Present(0, 0, 0, 0);

         break;
   }
      
   return DefWindowProc(hWnd,msg,wParam,lParam);
}      

BOOL InitDirect3D(HWND hWnd)
{
   lpD3D = Direct3DCreate9(D3D_SDK_VERSION);

   if(NULL == lpD3D)
   {
      return FALSE;
   }

   D3DPRESENT_PARAMETERS PParams;
    ZeroMemory(&PParams,sizeof(PParams));

    PParams.SwapEffect     = D3DSWAPEFFECT_DISCARD;
    PParams.hDeviceWindow  = hWnd;
    PParams.Windowed       = TRUE;

    PParams.BackBufferWidth  = 800;
    PParams.BackBufferHeight = 600;
    PParams.BackBufferFormat = D3DFMT_A8R8G8B8;

    if(FAILED(lpD3D->CreateDevice(D3DADAPTER_DEFAULT,
                                 D3DDEVTYPE_HAL,
                                 hWnd,
                                 D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                 &PParams,
                                 &lpD3DDevice)))
   {
      return FALSE;
   }

   return TRUE;
}

void CleanUpDirect3D(void)
{

    if(NULL != lpD3DDevice)
    {
        lpD3DDevice->Release();
        lpD3DDevice = NULL;
    }

    if(NULL != lpD3D)
    {
        lpD3D->Release();
        lpD3D = NULL;
    }
}


jetzt der fehler:

Linking...
directx.obj : error LNK2001: unresolved external symbol _Direct3DCreate9@4
Debug/directx.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

directx.exe - 2 error(s), 0 warning(s)

Bitte Helft mir Oo

Patric

EDIT: Hab fehler gefunden ... da noch nicht festgelgt ist was ausgegeben werden soll kommt der fehler...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 25.09.2004, 10:31    Titel: Antworten mit Zitat

sieht mir eher nach vergessenen libs aus. d3d9.lib, d3d9x.lib, ... eingebunden?
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patric
Mini JLI'ler



Anmeldedatum: 17.09.2004
Beiträge: 28

Medaillen: Keine

BeitragVerfasst am: 25.09.2004, 11:17    Titel: Antworten mit Zitat

nene ich habs getestet... weil wenn ich die vergemachte aus den beispielen nehme kommt genua der selbe fehler und wenn ich dann die nehme wo der tex hello direct3d eingebunden ist funktinoiert es Razz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 25.09.2004, 19:54    Titel: Antworten mit Zitat

dxguid.lib?
d9err.lib ( oder wie die heißt Very Happy )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Database
Mini JLI'ler



Anmeldedatum: 20.11.2004
Beiträge: 24
Wohnort: Hinter den sieben Bergen
Medaillen: Keine

BeitragVerfasst am: 20.11.2004, 11:23    Titel: Genau das selbe Problem Antworten mit Zitat

Das Programm verwendet Konstanten und Funktionen und was sonst noch alles aus bestimmnten Ordnern, die Sie als temporäre Datein installiert haben. Um die D3D(Direct3D-Programme) zum laufen zu bringen,
müssen Sie die Bibiotheken, also die Ordner mit der Endung .lib
einfügen.

dxguid.lib d3d9.lib d3dx9.lib

Das sind die Daten die Sie einbinden müssen. Exclamation
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