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):
Alles anzeigen
Aber das ganze wird nicht compiliert, sondern wird abgebrochen mit:
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
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):
Quellcode
- 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:
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
Murphy war ein Optimist.