Hab mal wieder ein total blödes Problem, aber des ist bei mir ja nix neues
.
Ich will nur eine D3D-Schnittstelle erstellen. Irgendwas klappt net. Nutze unten stehenden Code und es kommt immer das Fenster: "Fehler beim Erzeugen der Direct3D-Schnittstelle!"
Habe die d3d9.lib gelinkt und eigentlich auch die Verzeichnisse richtig bekannt gegeben. Es gibt hier nur eine Unsihcerheit:
Habe das DirectX SDK June06. Hier gibt es im Ordner Lib zwei Möglichkeiten: x64 oder x86. Wenn ich x64 nehme bekomme ich einen Linkerfehler, wenn ich x86 nehme, habe ich obiges Problem. Vielleicht habe ich hier den falschen Ordner ausgewählt und noch was anderes falsch gemacht?
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include <windows.h>
#include <StdIO.h>
#include <D3D9.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);
if(pD3D)
{
MessageBox(NULL, "Fehler beim Erzeugen der Direct3D-Schnittstelle!","Fehler",MB_OK | MB_ICONEXCLAMATION);
return 1;
}
int iNumAdapters = pD3D->GetAdapterCount();
D3DADAPTER_IDENTIFIER9* pAdapters = new D3DADAPTER_IDENTIFIER9[iNumAdapters];
for(int iAdapter = 0; iAdapter < iNumAdapters; iAdapter++)
{
if(FAILED(pD3D->GetAdapterIdentifier(iAdapter, 0, &pAdapters[iAdapter])))
{
MessageBox(NULL, "Adapterinformationen konnten nicht abgefrat werden!", "Fehler", MB_OK | MB_ICONEXCLAMATION);
pD3D->Release();
delete[] pAdapters;
return 1;
}
char acAdapterInfo[1024];
sprintf(acAdapterInfo, "Adapter-ID: %d\n"
"Name: %s\n"
"Treiber: %s\n"
"nTreiberversion: %d",
iAdapter,
pAdapters[iAdapter].Description,
pAdapters[iAdapter].Driver,
pAdapters[iAdapter].DriverVersion);
MessageBox(NULL, acAdapterInfo, "Adapter gefunden", MB_OK | MB_ICONINFORMATION);
}
pD3D->Release();
delete[] pAdapters;
return 0;
}
|
EDIT: Was bewirkt eigentlich: if(pD3D){}? Was wird da am pD3D überprüft?