kszere Temat założony przez niniejszego użytkownika |
» 2012-08-22 11:05:17 Ok, mam: LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case WM_KEYDOWN: case WM_COMMAND: switch( wParam ) { case IDM_GENERUJ: case ID_GENERUJ: case VK_RETURN: int rand() switch( rand( GetTickCount() % 2 ) ) { case 0: SetWindowText( hText, "1" ); break; case 1: SetWindowText( hText, "2" ); break; default: MessageBox( hwnd, "Losowanie pytania nie powiodłp się!", "Błąd", MB_ICONSTOP ); } break; } break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd, message, wParam, lParam ); } return 0; }
Wywala błąd: ----------------------------- Compiling: main.cpp ...\main.cpp: In function 'LRESULT WindowProcedure(HWND__*, UINT, WPARAM, LPARAM)': ...\main.cpp:117: error: expected initializer before 'switch' Process terminated with status 1 (0 minutes, 0 seconds) 1 errors, 0 warnings ... ale jak naprawię ten to będzie kolejny: error: 'hText' was not declared in this scope |
|
kszere Temat założony przez niniejszego użytkownika |
» 2012-08-23 12:58:26 Pomoże ktoś? Bardzo proszę. |
|
m4tx |
» 2012-08-23 13:09:41 117 linii tu nie ma. :P Co to jest? :) Jeszcze jedno - jak potrzebujesz zmiennych w case , to musisz tego case dać do oddzielnego bloku, tj. objąć go nawiasami klamrowymi. error: 'hText' was not declared in this scope |
To oznacza, że nie zadeklarowałeś hText, bądź jest to zmienna lokalna należąca do innej funkcji. Musisz zamienić ją na zmienną globalną. :) |
|
kszere Temat założony przez niniejszego użytkownika |
» 2012-08-23 14:06:02 Ok zmienna globalna jest, int rand() wykasowane. LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case WM_KEYDOWN: case WM_COMMAND: switch( wParam ) { case IDM_GENERUJ: case ID_GENERUJ: case VK_RETURN: { switch( rand( GetTickCount() % 2 ) ) { case 0: SetWindowText( hText, "1" ); break; case 1: SetWindowText( hText, "2" ); break; default: MessageBox( hwnd, "Losowanie pytania nie powiodłp się!", "Błąd", MB_ICONSTOP ); break; } break; } break; } case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd, message, wParam, lParam ); } return 0; }
Build log: Compiling: main.cpp c:\program files (x86)\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/../../../../include/stdlib.h: In function 'LRESULT WindowProcedure(HWND__*, UINT, WPARAM, LPARAM)': c:\program files (x86)\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/../../../../include/stdlib.h:360: error: too many arguments to function 'int rand()' ...main.cpp:117: error: at this point in file Process terminated with status 1 (0 minutes, 0 seconds) 2 errors, 0 warnings ...i otwiera mi plik stdlib.h na 360 lini. Cały czas nie wiem czy dobrze jest: switch( rand( GetTickCount() % 2 ) ) |
|
m4tx |
» 2012-08-23 14:10:03 |
|
kszere Temat założony przez niniejszego użytkownika |
» 2012-08-23 14:25:21 (( rand() % 50 ) + 7 ) Więc z tego co przeczytałem i wywnioskowałem powinno być: switch((( rand( GetTickCount() ) % 2 ) + 0 ) ) niestety dalej błąd:/ |
|
m4tx |
» 2012-08-23 14:36:13 powinno być: switch((( rand( GetTickCount() ) % 2 ) + 0 ) ) |
Nie. rand() nie przyjmuje argumentów :) Pamiętaj też, że powinieneś użyć funkcji srand() przez pierwszym losowaniem. |
|
kszere Temat założony przez niniejszego użytkownika |
» 2012-08-23 14:39:59 Ok wstawiam srand() , ale co zrobić z switch((( rand( GetTickCount() ) % 2 ) + 0 ) ) niestety już nie rozumiem. |
|
1 « 2 » 3 |