Morgen alle miteinander.
Ich habe folgendes Problem:
Auf Seite 109 gibts ein Beispiel bei dem es darum geht eine Direct3D Schnittstelle zu erstellen und Adapter auszulesen.
Folgender Code:
|
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#include <Windows.h>
#include <stdio.h>
#include <d3d9.h>
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
char* pcCmdLine,
int iShowCmd)
{
// Schnittstelle für Direct3D erzeugen
PDIRECT3D9 pD3D = Direct3DCreate9 (D3D_SDK_VERSION);
if (!pD3D)
{
MessageBox (NULL, "Fehler beim Erzeugen der Direct3D-Schnittstelle!",
"Fehler", MB_OK | MB_ICONEXCLAMATION); // Fehler!
return 1;
}
// Anzahl der Adapter ermitteln
int iNumAdapters = pD3D->GetAdapterCount ();
// Speicher reservieren und Informationen über jeden Adapter sammeln
D3DADAPTER_IDENTIFIER9 *pAdapters = new D3DADAPTER_IDENTIFIER9 [iNumAdapters];
for (int iAdapter = 0; iAdapter < iNumAdapters; iAdapter++)
{
if (FAILED (pD3D->GetAdapterIdentifier (iAdapter, 0, &pAdapters [iAdapter])))
{
// Fehler
MessageBox (NULL, "Adapterinformationen konnten nicht abgefragt werden!",
"Fehler", MB_OK | MB_ICONEXCLAMATION);
// Aufräumen
pD3D->Release ();
delete [] pAdapters;
return 1;
}
// Adapterinformationen anzeigen
char acAdapterInfo [1024];
sprintf (acAdapterInfo, "Adapter-ID: %d\n"
"Name: %s\n"
"nTreiberversion: %d",
iAdapter,
pAdapters [iAdapter].Description,
pAdapters [iAdapter].Driver,
pAdapters [iAdapter].DriverVersion);
MessageBox (NULL, acAdapterInfo, "Adapter gefunden", MB_OK | MB_ICONINFORMATION);
}
// Aufräumen
pD3D->Release ();
delete [] pAdapters;
return 0;
}
|
Steht genau so im Buch (3. Auflage).
1. Problem, Erzeugt jeder "MessageBox" Aufruf einen Fehler, und zwar beim 2 und 3 Parameter: "Error: Das Argument vom Typ ""const char*"" ist mit dem Parameter vom Typ ""LPCWSTR"" inkompatibel.
Ich habe dann einfach versucht den 2 und 3 Parameter einfach mit "(LPCWSTR)" zu casten, quasi: "(LPCWSTR) "Adapter gefunden"" Doch wird dann in der Message Box der gesamte Text in irgend welchen Schriftzeichen dargestellt, mit denen man selbst verständlich nichts anfangen kann.
2. Problem, dxerr9.lib kann nicht geöffnet werden. Ich hab dann in anderen Foren gelesen, dass bei neueren SDKs diese jetzt dxerr.lib heißt.
Wenn ich im Linker jetzt statt dxerr9.lib, dxerr.lib angebe, ändert sich nichts es kommt halt dann der Fehler "dxerr.lib kann nicht geöffnet werden."
Obwohl diese Datei aber im SDK Ordner vorhanden ist, x64 und x86.
Wäre echt nett wenn mir wer helfen könnte, danke schon mal im Vornhinein!!