Problem bei Displaymode-Auflistung
-
Hi,
Ich wollte mir alle Bildschirmmodi meiner Graka ausgeben lassen, und zwar so:
#include <iostream> #include <windows.h> #include <DXErr9.h> #include <d3d9.h> LRESULT CALLBACK wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); void move(float delta); int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmd, int showCmd) { MSG msg; PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION); if(!pD3D) { MessageBox(NULL, "Fehler beim Erstellen von D3D", "", MB_OK); return 0; } int numAdapters = pD3D->GetAdapterCount(); D3DADAPTER_IDENTIFIER9* pAdapters = new D3DADAPTER_IDENTIFIER9[numAdapters]; for( int i = 0; i < numAdapters; i++) { if(FAILED(pD3D->GetAdapterIdentifier(i, 0, &pAdapters[i]))) { MessageBox(NULL, "FUCK!", "", MB_OK); pD3D->Release(); delete[] pAdapters; return 0; } char info[1024]; sprintf(info, "Adapter-ID: %d\n" "Name: %s\n" "Treiber: %s\n" "Treiberversion: %d", i, pAdapters[i].Description, pAdapters[i].Driver, pAdapters[i].DriverVersion); MessageBox(NULL, info, "", MB_OK); int numModes = pD3D->GetAdapterModeCount(i, D3DFMT_X8R8G8B8); if( numModes > 0) { D3DDISPLAYMODE* pModes = new D3DDISPLAYMODE[numModes]; char acModes[16384]; for( int x = 0; x < numModes; x++) { pD3D->EnumAdapterModes(i, D3DFMT_X8R8G8B8, x, &pModes[x]); sprintf(acModes, "%s\n Modus %d: %dx%d bei %d Hz", acModes, x, pModes[x].Width, pModes[x].Height, pModes[x].RefreshRate); } MessageBox(NULL, acModes, "", MB_OK); delete[] pModes; } else MessageBox(NULL, "Zu Wenig!", "", MB_OK); } return 0; } LRESULT CALLBACK wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case(WM_DESTROY): { PostQuitMessage(0); return 0; }break; case(WM_CLOSE): { PostQuitMessage(0); return 0; }break; } return DefWindowProc(hWnd, msg, wParam, lParam); } void move(float delta) { return; }[Win Vista, DxSDK9 August 07]
Hoffe, es findet jemand den Fehler.
MfG