[WinApi, C++] Problem z kompilacja
Ostatnio zmodyfikowano 2012-01-05 15:42
jawka7 Temat założony przez niniejszego użytkownika |
[WinApi, C++] Problem z kompilacja » 2012-01-05 13:06:16 Witam,
Podczas kompilacji dostaje błąd gdyż nie uruchamia mi wcale funkcji WczytajPlik, dodam ze uzywam Visual Studio 2010:
1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(76): error C2664: 'WczytajPlik' : cannot convert parameter 1 from 'char [260]' to 'char'
1> There is no context in which this conversion is possible
Treść kodu:
LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case WM_COMMAND: { OPENFILENAME ofn; char sNazwaPliku[ MAX_PATH ] = ""; ZeroMemory( & ofn, sizeof( ofn ) ); ofn.lStructSize = sizeof( ofn ); ofn.lpstrFilter = "Pliki tekstowe (*.txt)\0*.txt\0Wszystkie pliki\0*.*\0"; ofn.nMaxFile = MAX_PATH; ofn.lpstrFile = sNazwaPliku; ofn.lpstrDefExt = "txt"; ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; if( GetOpenFileName( & ofn ) ) { WczytajPlik( sNazwaPliku, hEdit ); } } break; case WM_CLOSE: DestroyWindow( hwnd ); break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd, message, wParam, lParam ); } return 0; }
void WczytajPlik( char _sNazwaPliku[], HWND & _hEdit ) { LPSTR Bufor; DWORD dwRozmiar, dwOdczytane; HANDLE hPlik; hPlik = CreateFile(( LPCSTR ) _sNazwaPliku, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL ); if( hPlik == INVALID_HANDLE_VALUE ) { MessageBox( NULL, "Nie można otworzyć pliku.", "A to pech!", MB_ICONEXCLAMATION ); PostQuitMessage( 0 ); } dwRozmiar = GetFileSize( hPlik, NULL ); if( dwRozmiar == 0xFFFFFFFF ) { MessageBox( NULL, "Nieprawidłowy rozmiar pliku!", "Niedobrze...", MB_ICONEXCLAMATION ); PostQuitMessage( 0 ); } Bufor =( LPSTR ) GlobalAlloc( GPTR, dwRozmiar + 1 ); if( Bufor == NULL ) { MessageBox( NULL, "Za mało pamięci!", "Ale wiocha...", MB_ICONEXCLAMATION ); PostQuitMessage( 0 ); } if( !ReadFile( hPlik, Bufor, dwRozmiar, & dwOdczytane, NULL ) ) { MessageBox( NULL, "Błąd czytania z pliku", "Dupa blada!", MB_ICONEXCLAMATION ); PostQuitMessage( 0 ); } SetWindowText( _hEdit, Bufor ); GlobalFree( Bufor ); CloseHandle( hPlik ); }
|
|
xevuel |
» 2012-01-05 15:25:56 Najlepiej będzie, jak char _sNazwaPliku[] zamienisz na char * _sNazwaPliku i odpowiednio zmodyfikujesz kod. |
|
jawka7 Temat założony przez niniejszego użytkownika |
» 2012-01-05 15:42:07 Działa jednak chodziło o wskaźnik z tym ze dodałem go do funkcja a tam gdzie definiuje funkcje już nie dlatego nie działało. Dzięki wielkie za pomoc! |
|
« 1 » |