enrico_tietz
Grünschnabel
Hallo an alle.
Möchte grade mal anfangen mit directX - Programmierung.
Warum läuft folgendes Code-Beispiel nicht.
Bei GetAdapterCount bekomme ich immer eine Zugriffsverletzung.
Kann mir bite jemand helfen.
Möchte grade mal anfangen mit directX - Programmierung.
Warum läuft folgendes Code-Beispiel nicht.
Bei GetAdapterCount bekomme ich immer eine Zugriffsverletzung.
HTML:
#include <Windows.h>
#include <StdIO.h>
#include <d3d9.h>
int g_iNumAdapters; // Anzahl der Adapter
D3DADAPTER_IDENTIFIER9* g_pAdapters; // Adapterliste
PDIRECT3D9 g_pD3D = NULL; // IDirect3D9-Schnittstelle
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
char* pcCmdLine,
int iShowCmd)
{
char acAdapterInfo[1024];
//ZU ERLEDIGEN: Fügen Sie hier den Code ein.
PDIRECT3D9 g_pd3d = NULL; //IDirect3D9 - Schnittstelle
//Schnittstelle erzeugen
g_pd3d = Direct3DCreate9(D3D_SDK_VERSION);
if (g_pd3d == NULL)
{
//Fehler beim Erstellen der Schnittstelle
MessageBox(NULL, "Direct3D 9 konnte nicht initialisiert werden!\
Installieren Sie bitte die neueste DirectX-Version.","Fehler", MB_OK | MB_ICONEXCLAMATION);
return 1;
}
// Anzahl der Adapter ermitteln
g_iNumAdapters = g_pD3D->GetAdapterCount();
//Speicher reservieren und Informationen über jeden Adapter sammeln
g_pAdapters = new D3DADAPTER_IDENTIFIER9[g_iNumAdapters];
for(int iAdapter = 0 ; iAdapter < g_iNumAdapters ; iAdapter++)
{
if(FAILED(g_pD3D->GetAdapterIdentifier(iAdapter,0,&g_pAdapters[iAdapter])))
{
// Fehler
MessageBox(NULL, "Adapterinformation konnte nicht abgefragt werden!","Fehler",MB_OK | MB_ICONEXCLAMATION);
// Aufräumen
g_pD3D->Release();
delete[] g_pAdapters;
return 1;
}
// Adapterinformationen anzeigen
sprintf(acAdapterInfo,"Adapter-ID: %d\nName: %s\nTreiber: %s\nnTreiberversion: %d",
iAdapter,
g_pAdapters[iAdapter].Description,
g_pAdapters[iAdapter].Driver,
g_pAdapters[iAdapter].DriverVersion);
MessageBox(NULL,acAdapterInfo,"Adapter gefunden",MB_OK | MB_ICONINFORMATION);
}
// aufräumen
g_pD3D->Release();
delete[] g_pAdapters;
return 0;
}
Kann mir bite jemand helfen.