Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinApi, C++] Problem z kompilacja

Ostatnio zmodyfikowano 2012-01-05 15:42
Autor Wiadomość
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:

C/C++
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 );
}
P-47296
xevuel
» 2012-01-05 15:25:56
Najlepiej będzie, jak
char _sNazwaPliku[]
zamienisz na
char * _sNazwaPliku
 i odpowiednio zmodyfikujesz kod.
P-47300
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!
P-47302
« 1 »
  Strona 1 z 1