Hi
Ich wollte mit einer Liste die Adapter ausgeben. Zuerst wollte ich, dass alle Adapter die verfügbar sind in die Liste eingetragen werden. Danach habe ich mit dem Iterator alle Listeneinträge ausgeben wollen.
Leider funktioniert diese Ausgabe nicht richtig, es wird lediglich eine komische Buchstabenreihenfolge angezeigt.
Hier ist der 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
63
64
65
66
|
// main.h
//
#include <iostream>
#include <list>
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
using namespace std;
void FillList(list<char*> * lList);
void ShowList(list<char*> lList);
// main.cpp
//
#include "main.h"
PDIRECT3D9 g_pD3D;
void FillList(list<char*> * lList)
{
int iNumAdapters;
char * AdapterDescription;
D3DADAPTER_IDENTIFIER9 AdapterInfo;
// Anzahl der Adapter abfragen
iNumAdapters = g_pD3D->GetAdapterCount();
// Jeden Adapter durchgehen
for(int iAdapter = 0; iAdapter < iNumAdapters; iAdapter++)
{
// Informationen abfragen
g_pD3D->GetAdapterIdentifier(iAdapter, 0, &AdapterInfo);
AdapterDescription = AdapterInfo.Description;
lList->push_back(AdapterDescription);
}
}
void ShowList(list<char*> lList)
{
list<char*>::iterator i;
for(i = lList.begin(); i != lList.end(); ++i)
{
cout << *i << endl;
}
}
int main()
{
g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
list<char*> MyList;
FillList(&MyList);
ShowList(MyList);
cout << MyList.size() << endl;
return 0;
}
|
Kann mir jemand sagen, was ich hier falsch gemacht habe?
Meine zweite Frage, zuerst wollte ich das ganze auf einer Win32 Applikation machen und da wollte ich mit Hilfe von SendDlgItemMessage die verfügbaren Adapter mit dem Iterator auflisten. Doch die ComboBox hatte ebenfalls einen eigenartigen Inhalt. Wie kann ich den Iterator in LPARAM konventieren, damit die ComboBox den richtigen Inhalt ausgibt?
LG Patrick