AssSoft Temat założony przez niniejszego użytkownika |
Znikające dane z struktury » 2014-06-17 22:46:48 Witam, na wstępie dodam że NIGDY takiego błędu nie widziałem... Mam taki o to kodzik: #include "WWall_mainhead.hpp" #include "dll.h" #include <windows.h> #include <windowsx.h> #include <ctime> #include <string> #include <sstream> #define ID_hsettimup 1000 #define ID_hsettimdp 1001 #define ID_hstartp 1002 using namespace std; const WORD ID1_TIMER = 1; const WORD ID2_TIMER = 2; lisplik LP[ 100000 ]; int LPn = - 1; int LPna = 0; int DayTim[ 7 ]; HDC hdc; HWND hstartp; HWND hsavep; HWND hdayslis; HWND hobrlis; HWND hsettimdp; HWND hsettimup; HWND htimst; HWND hobrftx; bool someshit = false; int daysCboxlastpoz = - 1; int daysCboxactpoz = - 1; LPSTR lpstr1;
LRESULT CALLBACK WndProc( HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam ) { switch( Message ) { case WM_DESTROY: { PostQuitMessage( 0 ); break; } case WM_TIMER: { WIN32_FIND_DATA Data; if( wParam == ID1_TIMER ) { int obrtyp; daysCboxactpoz = ComboBox_GetCurSel( hdayslis ); if( daysCboxactpoz != daysCboxlastpoz ) { DestroyWindow( hstartp ); DestroyWindow( hsettimup ); DestroyWindow( hsettimdp ); DestroyWindow( htimst ); LPn = - 1; DestroyWindow( hobrlis ); daysCboxlastpoz = ComboBox_GetCurSel( hdayslis ); hobrlis = CreateWindowEx( WS_EX_CLIENTEDGE, "LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST, 155, 5, 250, 400, hwnd, NULL, GetModuleHandle( NULL ), NULL ); daysCboxlastpoz++; HANDLE hjpg; HANDLE hbmp; switch( daysCboxlastpoz ) { case 1: { hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*jpg" ), & Data ); hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*bmp" ), & Data ); if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/1/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { lpstr1 = "C:/programs/WindowsWall/OBR/1/"; LPn++; LP[ LPn ].filetype = 0; } } else { lpstr1 = "C:/programs/WindowsWall/OBR/1/"; LPn++; LP[ LPn ].filetype = 1; } } break; case 2: { hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*jpg" ), & Data ); hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*bmp" ), & Data ); if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/2/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { lpstr1 = "C:/programs/WindowsWall/OBR/2/"; LPn++; LP[ LPn ].filetype = 0; } } else { lpstr1 = "C:/programs/WindowsWall/OBR/2/"; LPn++; LP[ LPn ].filetype = 1; } } break; case 3: { hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*jpg" ), & Data ); hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*bmp" ), & Data ); if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/3/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { lpstr1 = "C:/programs/WindowsWall/OBR/3/"; LPn++; LP[ LPn ].filetype = 0; } } else { lpstr1 = "C:/programs/WindowsWall/OBR/3/"; LPn++; LP[ LPn ].filetype = 1; } } break; case 4: { hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*jpg" ), & Data ); hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*bmp" ), & Data ); if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/4/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { lpstr1 = "C:/programs/WindowsWall/OBR/4/"; LPn++; LP[ LPn ].filetype = 0; } } else { lpstr1 = "C:/programs/WindowsWall/OBR/4/"; LPn++; LP[ LPn ].filetype = 1; } } break; case 5: { hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*jpg" ), & Data ); hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*bmp" ), & Data ); if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/5/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { lpstr1 = "C:/programs/WindowsWall/OBR/5/"; LPn++; LP[ LPn ].filetype = 0; } } else { lpstr1 = "C:/programs/WindowsWall/OBR/5/"; LPn++; LP[ LPn ].filetype = 1; } } break; case 6: { hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*jpg" ), & Data ); hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*bmp" ), & Data ); if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/6/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { lpstr1 = "C:/programs/WindowsWall/OBR/6/"; LPn++; LP[ LPn ].filetype = 0; } } else { lpstr1 = "C:/programs/WindowsWall/OBR/6/"; LPn++; LP[ LPn ].filetype = 1; } } break; case 7: { hjpg = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*jpg" ), & Data ); hbmp = FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*bmp" ), & Data ); if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*.jpg" ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( TEXT( "C:/programs/WindowsWall/OBR/7/*.bmp" ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { lpstr1 = "C:/programs/WindowsWall/OBR/7/"; LPn++; LP[ LPn ].filetype = 0; } } else { lpstr1 = "C:/programs/WindowsWall/OBR/7/"; LPn++; LP[ LPn ].filetype = 1; } } break; } LP[ LPn ].daynum = daysCboxlastpoz; LP[ LPn ].filename = Data.cFileName; LPn++; SendMessage( hobrlis, LB_ADDSTRING, 0,( LPARAM ) LP[ LPn - 1 ].filename ); while( FindNextFile( hbmp, & Data ) ) { LP[ LPn ].filetype = 0; LP[ LPn ].daynum = daysCboxlastpoz; LP[ LPn ].filename = Data.cFileName; LPn++; SendMessage( hobrlis, LB_ADDSTRING, 0,( LPARAM ) LP[ LPn - 1 ].filename ); } FindClose( hbmp ); while( FindNextFile( hjpg, & Data ) ) { LP[ LPn ].filetype = 1; LP[ LPn ].daynum = daysCboxlastpoz; LP[ LPn ].filename = Data.cFileName; SendMessage( hobrlis, LB_ADDSTRING, 0,( LPARAM ) LP[ LPn - 1 ].filename ); LPn++; } FindClose( hjpg ); hstartp = CreateWindowEx( 0, "BUTTON", "Start", WS_CHILD | WS_VISIBLE, 480, 1, 50, 50, hwnd,( HMENU ) ID_hstartp, GetModuleHandle( NULL ), NULL ); hsettimup = CreateWindowEx( 0, "BUTTON", "+", WS_CHILD | WS_VISIBLE, 455, 1, 25, 25, hwnd,( HMENU ) ID_hsettimup, GetModuleHandle( NULL ), NULL ); hsettimdp = CreateWindowEx( 0, "BUTTON", "-", WS_CHILD | WS_VISIBLE, 455, 26, 25, 25, hwnd,( HMENU ) ID_hsettimdp, GetModuleHandle( NULL ), NULL ); htimst = CreateWindowEx( 0, "STATIC", NULL, WS_CHILD | WS_VISIBLE | SS_LEFT, 405, 1, 50, 50, hwnd, NULL, GetModuleHandle( NULL ), NULL ); DayTim[ daysCboxlastpoz - 1 ] = 10; someshit = true; end:; string buf; ostringstream ss; if( someshit == false ) { goto tend; } someshit = false; ss << DayTim[ daysCboxlastpoz - 1 ]; buf = ss.str(); SetWindowText( htimst, buf.c_str() ); tend:; daysCboxlastpoz--; } } if( wParam == ID2_TIMER ) { LPSTR linklp = lpstr1; strcat( linklp, LP[ LPna ].filename ); SystemParametersInfo( SPI_SETDESKWALLPAPER, 0,( PVOID ) linklp, SPIF_UPDATEINIFILE ); LPna++; if( LPna > LPn - 1 ) { LPna = 0; } } break; } case WM_COMMAND: { switch( wParam ) { case ID_hsettimup: { DayTim[ daysCboxlastpoz ] ++; string buf; ostringstream ss; ss << DayTim[ daysCboxlastpoz ]; buf = ss.str(); SetWindowText( htimst, buf.c_str() ); } break; case ID_hsettimdp: { DayTim[ daysCboxlastpoz ] --; string buf; ostringstream ss; ss << DayTim[ daysCboxlastpoz ]; buf = ss.str(); SetWindowText( htimst, buf.c_str() ); } break; case ID_hstartp: { LPna = 0; if( SetTimer( hwnd, ID2_TIMER, DayTim[ daysCboxlastpoz ] * 1000, NULL ) == 0 ) MessageBox( hwnd, "Nie można utworzyć timera!", "Error", MB_ICONSTOP ); LPSTR linklp = lpstr1; SystemParametersInfo( SPI_SETDESKWALLPAPER, 0,( PVOID ) linklp, SPIF_UPDATEINIFILE ); MessageBox( hwnd, LP[ LPna ].filename, "Wygrałeś wiadro internetu...", MB_ICONSTOP ); LPna++; if( LPna > LPn - 1 ) { LPna = 0; } } break; } break; } default: return DefWindowProc( hwnd, Message, wParam, lParam ); } return 0; }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { WNDCLASSEX wc; HWND hwnd; MSG Msg; memset( & wc, 0, sizeof( wc ) ); wc.cbSize = sizeof( WNDCLASSEX ); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 ); wc.lpszClassName = "WindowClass"; wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); if( !RegisterClassEx( & wc ) ) { MessageBox( NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK ); return 0; } hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "WindowClass", "WindowsWall", WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 1000, 500, NULL, NULL, hInstance, NULL ); if( hwnd == NULL ) { MessageBox( NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK ); return 0; } hdayslis = CreateWindowEx( WS_EX_CLIENTEDGE, "COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST, 5, 5, 150, 200, hwnd, NULL, hInstance, NULL ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Poniedziałek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Wtorek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Środa" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Czwartek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Piątek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Sobota" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Niedziela" ); WIN32_FIND_DATA DATA; bool allfilesready = CheckFiles(); if( allfilesready == false ) { MessageBox( NULL, "Błąd krytyczny, brak możliwości kontynuowania pracy programu. Zalecana reinstalacja", "Error!", MB_ICONEXCLAMATION | MB_OK ); waitsec( 3 ); PostQuitMessage( 0 ); } if( SetTimer( hwnd, ID1_TIMER, 100, NULL ) == 0 ) MessageBox( hwnd, "Nie można utworzyć timera!", "Error", MB_ICONSTOP ); while( GetMessage( & Msg, NULL, 0, 0 ) > 0 ) { TranslateMessage( & Msg ); DispatchMessage( & Msg ); } return Msg.wParam; } (tak, wiem że zrobienie ponad 100 linii kodu dla jednej cyferki to strata czasu, gdybym miał to robić drugi raz to zrobiłbym to zupełnie inaczej.) i taką oto strukturę umieszczoną w DLL: struct lisplik { int daynum; LPSTR filename; int filetype; }; W momencie dojścia do strcat następuje crash. ( oznaczyłem w kodzie komentarzem ) Dodam że próbowałem wielu metod, dopiero na koniec użyłem strcat... Po kilku testach okazało się że LP[LPna].filename jest... puste. Po sprawdzeniu dokładnie tej samej zmiennej (?) w miejscu nadawania jej wartości wszystko działało. Wyczerpałem wszystkie pomysły i sposoby... Prosiłbym o szybką pomoc. Wiele razy stosowałem w ten sposób strukturę, nigdy czegoś takiego nie widziałem. |
|
maly |
» 2014-06-18 07:14:57 LP[ LPn ].filename = Data.cFileName; to nie działa tak jak myślisz. wiem że zrobienie ponad 100 linii kodu dla jednej cyferki to strata czasu |
gdybym miał to robić drugi raz to zrobiłbym to zupełnie inaczej |
Wyczerpałem wszystkie pomysły i sposoby |
Acha. Już w poprzednim temacie pisałem, mając tak dużo chaotycznego kodu aż się prosisz o błędy i co najdziwniejsze prosisz innych żeby znaleźli je za Ciebie. |
|
AssSoft Temat założony przez niniejszego użytkownika |
» 2014-06-19 19:28:23 A konkretniej? Usunąłem całkowicie switch case, zrobiłem to od nowa i dalej na jedno wychodzi... Nie wiem, możliwe że błąd jest oczywisty, ale jak dla mnie nie ma sensu - Co może tu działać inaczej? |
|
pekfos |
» 2014-06-19 22:31:56 Co może tu działać inaczej? |
Gdzie? LP[ LPn ].filename = Data.cFileName; to nie działa tak jak myślisz. |
..tu? Kopiujesz tylko wskaźnik, a nie rzeczywiste dane, które zaraz potem mogą zostać usunięte, lub się zmienić. |
|
AssSoft Temat założony przez niniejszego użytkownika |
» 2014-06-20 13:26:11 Hmm... Wiesz może jak to zmienić? Oczywiście pracuje nad tym, ale nie widzę rozwiązania. #include "WWall_mainhead.hpp" #include "dll.h" #include <windows.h> #include <windowsx.h> #include <ctime> #include <string> #include <sstream> #define ID_hsettimup 1000 #define ID_hsettimdp 1001 #define ID_hstartp 1002 using namespace std; const WORD ID1_TIMER = 1; const WORD ID2_TIMER = 2; lisplik LP[ 100000 ]; int LPn = - 1; int LPna = 0; int DayTim[ 7 ]; string link; HDC hdc; HWND hstartp; HWND hsavep; HWND hdayslis; HWND hobrlis; HWND hsettimdp; HWND hsettimup; HWND htimst; HWND hobrftx; bool someshit = false; int daysCboxlastpoz = - 1; int daysCboxactpoz = - 1; LPSTR lpstr1;
LRESULT CALLBACK WndProc( HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam ) { switch( Message ) { case WM_DESTROY: { PostQuitMessage( 0 ); break; } case WM_TIMER: { WIN32_FIND_DATA Data; if( wParam == ID1_TIMER ) { int obrtyp; daysCboxactpoz = ComboBox_GetCurSel( hdayslis ); LPSTR lpfilename; if( daysCboxactpoz != daysCboxlastpoz ) { DestroyWindow( hstartp ); DestroyWindow( hsettimup ); DestroyWindow( hsettimdp ); DestroyWindow( htimst ); LPn = - 1; DestroyWindow( hobrlis ); daysCboxlastpoz = ComboBox_GetCurSel( hdayslis ); hobrlis = CreateWindowEx( WS_EX_CLIENTEDGE, "LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST, 155, 5, 250, 400, hwnd, NULL, GetModuleHandle( NULL ), NULL ); daysCboxlastpoz++; HANDLE hjpg; HANDLE hbmp; ostringstream oss1; oss1 << "C:/programs/WindowsWall/OBR/" << daysCboxlastpoz << "/*jpg"; string linktoJPG = oss1.str(); ostringstream oss2; oss2 << "C:/programs/WindowsWall/OBR/" << daysCboxlastpoz << "/*bmp"; string linktoBMP = oss2.str(); ostringstream oss3; oss3 << "C:/programs/WindowsWall/OBR/" << daysCboxlastpoz << "/"; link = oss3.str(); hjpg = FindFirstFile( STRtoLPS( linktoJPG ), & Data ); hbmp = FindFirstFile( STRtoLPS( linktoBMP ), & Data ); if( FindFirstFile( STRtoLPS( linktoJPG ), & Data ) == INVALID_HANDLE_VALUE ) { if( FindFirstFile( STRtoLPS( linktoBMP ), & Data ) == INVALID_HANDLE_VALUE ) { goto end; } else { LPn++; LP[ LPn ].filetype = 0; } } else { LPn++; LP[ LPn ].filetype = 1; } LP[ LPn ].daynum = daysCboxlastpoz; lpfilename = Data.cFileName; LP[ LPn ].filename = lpfilename; SendMessage( hobrlis, LB_ADDSTRING, 0,( LPARAM ) LP[ LPn ].filename ); LPn++; while( FindNextFile( hbmp, & Data ) ) { LP[ LPn ].filetype = 0; LP[ LPn ].daynum = daysCboxlastpoz; lpfilename = Data.cFileName; LP[ LPn ].filename = lpfilename; SendMessage( hobrlis, LB_ADDSTRING, 0,( LPARAM ) LP[ LPn ].filename ); LPn++; } FindClose( hbmp ); while( FindNextFile( hjpg, & Data ) ) { LP[ LPn ].filetype = 1; LP[ LPn ].daynum = daysCboxlastpoz; lpfilename = Data.cFileName; LP[ LPn ].filename = lpfilename; SendMessage( hobrlis, LB_ADDSTRING, 0,( LPARAM ) LP[ LPn ].filename ); LPn++; } FindClose( hjpg ); hstartp = CreateWindowEx( 0, "BUTTON", "Start", WS_CHILD | WS_VISIBLE, 480, 1, 50, 50, hwnd,( HMENU ) ID_hstartp, GetModuleHandle( NULL ), NULL ); hsettimup = CreateWindowEx( 0, "BUTTON", "+", WS_CHILD | WS_VISIBLE, 455, 1, 25, 25, hwnd,( HMENU ) ID_hsettimup, GetModuleHandle( NULL ), NULL ); hsettimdp = CreateWindowEx( 0, "BUTTON", "-", WS_CHILD | WS_VISIBLE, 455, 26, 25, 25, hwnd,( HMENU ) ID_hsettimdp, GetModuleHandle( NULL ), NULL ); htimst = CreateWindowEx( 0, "STATIC", NULL, WS_CHILD | WS_VISIBLE | SS_LEFT, 405, 1, 50, 50, hwnd, NULL, GetModuleHandle( NULL ), NULL ); DayTim[ daysCboxlastpoz - 1 ] = 10; someshit = true; end:; string buf; ostringstream ss; if( someshit == false ) { goto tend; } someshit = false; ss << DayTim[ daysCboxlastpoz - 1 ]; buf = ss.str(); SetWindowText( htimst, buf.c_str() ); tend:; daysCboxlastpoz--; } } if( wParam == ID2_TIMER ) { link += LPStoSTR( LP[ LPna ].filename ); LPSTR linklp = STRtoLPS( link ); MessageBox( hwnd, linklp, "KABOOOM", MB_ICONSTOP ); SystemParametersInfo( SPI_SETDESKWALLPAPER, 0,( PVOID ) linklp, SPIF_UPDATEINIFILE ); LPna++; if( LPna > LPn ) { LPna = 0; } } break; } case WM_COMMAND: { switch( wParam ) { case ID_hsettimup: { DayTim[ daysCboxlastpoz ] ++; string buf; ostringstream ss; ss << DayTim[ daysCboxlastpoz ]; buf = ss.str(); SetWindowText( htimst, buf.c_str() ); } break; case ID_hsettimdp: { DayTim[ daysCboxlastpoz ] --; string buf; ostringstream ss; ss << DayTim[ daysCboxlastpoz ]; buf = ss.str(); SetWindowText( htimst, buf.c_str() ); } break; case ID_hstartp: { LPna = 0; if( SetTimer( hwnd, ID2_TIMER, DayTim[ daysCboxlastpoz ] * 1000, NULL ) == 0 ) MessageBox( hwnd, "Nie można utworzyć timera!", "Error", MB_ICONSTOP ); } break; } break; } default: return DefWindowProc( hwnd, Message, wParam, lParam ); } return 0; }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { WNDCLASSEX wc; HWND hwnd; MSG Msg; memset( & wc, 0, sizeof( wc ) ); wc.cbSize = sizeof( WNDCLASSEX ); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 ); wc.lpszClassName = "WindowClass"; wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); if( !RegisterClassEx( & wc ) ) { MessageBox( NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK ); return 0; } hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "WindowClass", "WindowsWall", WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 1000, 500, NULL, NULL, hInstance, NULL ); if( hwnd == NULL ) { MessageBox( NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK ); return 0; } hdayslis = CreateWindowEx( WS_EX_CLIENTEDGE, "COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST, 5, 5, 150, 200, hwnd, NULL, hInstance, NULL ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Poniedziałek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Wtorek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Środa" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Czwartek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Piątek" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Sobota" ); SendMessage( hdayslis, CB_ADDSTRING, 0,( LPARAM ) "Niedziela" ); WIN32_FIND_DATA DATA; bool allfilesready = CheckFiles(); if( allfilesready == false ) { MessageBox( NULL, "Błąd krytyczny, brak możliwości kontynuowania pracy programu. Zalecana reinstalacja", "Error!", MB_ICONEXCLAMATION | MB_OK ); waitsec( 3 ); PostQuitMessage( 0 ); } if( SetTimer( hwnd, ID1_TIMER, 100, NULL ) == 0 ) MessageBox( hwnd, "Nie można utworzyć timera!", "Error", MB_ICONSTOP ); while( GetMessage( & Msg, NULL, 0, 0 ) > 0 ) { TranslateMessage( & Msg ); DispatchMessage( & Msg ); } return Msg.wParam; } Program przestaje się sypać, ale dalej nie jest to zamierzony efekt. |
|
maly |
» 2014-06-20 14:42:24 Może poprostu zamiast LPSTR użyj std::string? struct lisplik { int daynum; std::string filename; int filetype; }; |
|
AssSoft Temat założony przez niniejszego użytkownika |
» 2014-06-20 16:08:06 Działa. Dzięki... W tym momencie dopiero zrozumiałem w czym był problem. Na przyszłość warto zapamiętać. |
|
« 1 » |