You are not logged in.

  • Login

1

Thursday, January 11th 2007, 6:52pm

Threadproblem, bzw. Frage

Hallo,

ich möchte mich jetzt mal ein wenig mit (SDL)Threads beschäftigen.
Dazu wollte ich dem Thread folgende Struktur als Parameter übergeben:

map<string,map<int,s_image> >

Am besten ich poste mal nen bissl Code (ohne includes):

C Quellcode

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
using namespace std;
 
struct s_image {
	string filename;//Filename
	Sint16 x;		// X-Pos
	Sint16 y;		// Y-Pos
};
 
typedef map<string,map<int,s_image> > t_mimage;
 
string menu = "testmenu";  //global
 
int HandleImage (void *IMG) {
 t_mimage* test = (t_mimage*) IMG;
 cout << "\nTestausgabe:" << test[menu][0]->filename << endl;
 return 0;
}
 
int main(void) {
 t_mimage IMAGE;
 t_mimage* p_IMAGE = &IMAGE;
 
 IMAGE["testmenu"][0].filename = "picture.jpg";
 IMAGE["testmenu"][0].x = 10;
 IMAGE["testmenu"][0].y = 100;
 
 SDL_Thread *imgthread;
 imgthread = SDL_CreateThread (HandleImage, p_IMAGE);
 SDL_KillThread(imgthread);
 
 return 0;
}


Aber das ganze wird nicht compiliert, sondern wird abgebrochen mit:

Quoted

error: no match for ‘operator[]’ in ‘test[menu]’


Ich weiß das der Fehler im Zugriff auf das Object in der Threadfunktion liegt. Funktioniert das ganze nur nicht, weil an die Funktionen der Zeiger übergeben wird?

Vielleicht kann ja einer mal einen Denkanstoß geben :)
Danke.

Thomas

2

Thursday, January 11th 2007, 7:09pm

Es sollte eigentlich "test[menu][0].filename" da dort kein Pointer gespeichert ist.

3

Sunday, January 14th 2007, 3:10pm

Quoted from ""phax""

Es sollte eigentlich "test[menu][0].filename" da dort kein Pointer gespeichert ist.


Hm, da kommt genau der gleiche Fehler beim Compilieren:

Quoted

error: no match for ‘operator[]’ in ‘test[menu]’


Wenn ich ein "cout << test" in die Funktion HandleImage einfüge, bekomme ich auch eine Adresse.

Ich nehme mal an, es liegt an den eckigen Klammern, aber ich wüsste nicht wie ich die anders schreiben sollte....

Thomas

Similar threads

Tagging

Social bookmarks