Hallow,
Ik heb een probleem; ik probeer een tetris kloon te maken met C++ en SDL (simple directmedia layer). Het volgende stukje code compileert perfect:
SDL heeft een ingebouwde functie om threads te laten lopen.
Als ik echter dezelfde functies in een object zet, wil het niet meer compileren:
VC++ 6.0 geeft dan volgende error:
ik snap niet waar dit aan ligt, aangezien de thread dezelfde functie is, alleen dan als member van een object?
(let er maar niet op dat er nu twee oneindige threads bezig zijn, want dit is normaal natuurlijk niet het geval
)
Ik heb een probleem; ik probeer een tetris kloon te maken met C++ en SDL (simple directmedia layer). Het volgende stukje code compileert perfect:
C++:
1
2
3
4
5
6
7
| int framethread(void *bla) { while (true) { } return 0; } //de inhoud doet er nu even niet toe void start() { bool running = true; SDL_Thread *ft = SDL_CreateThread(framethread,NULL); while (running) { } } |
SDL heeft een ingebouwde functie om threads te laten lopen.
Als ik echter dezelfde functies in een object zet, wil het niet meer compileren:
C++:
1
2
3
4
5
6
7
8
9
| class klasse1 { int framethread(void *bla) { while (true) { } return 0; } //de inhoud doet er nu even niet toe public: void start() { bool running = true; SDL_Thread *ft = SDL_CreateThread(framethread,NULL); while (running) { } } } |
VC++ 6.0 geeft dan volgende error:
code:
1
2
| C:\tetris\cpp1.cpp(65) : error C2664: 'SDL_CreateThread' : cannot convert parameter 1 from 'int (void *)' to 'int (__cdecl *)(void *)'
None of the functions with this name in scope match the target type |
ik snap niet waar dit aan ligt, aangezien de thread dezelfde functie is, alleen dan als member van een object?
(let er maar niet op dat er nu twee oneindige threads bezig zijn, want dit is normaal natuurlijk niet het geval