[WinAPI, C++] Deklaracja zmiennych i błąd "identifier not found"
Ostatnio zmodyfikowano 2012-01-06 16:27
jawka7 Temat założony przez niniejszego użytkownika |
[WinAPI, C++] Deklaracja zmiennych i błąd "identifier not found" » 2012-01-06 15:17:32 Mam pytanie jak powinna byc zadeklarowana zmienna buffer? oraz dlaczego wywala mi blad podczas SelectBitmap? 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(141): error C3861: 'SelectBitmap': identifier not found 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(143): error C3861: 'SelectBitmap': identifier not found 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(154): error C2065: 'buffer' : undeclared identifier 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(154): error C2070: ''unknown-type'': illegal sizeof operand 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(154): error C2065: 'buffer' : undeclared identifier 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(155): error C2065: 'buffer' : undeclared identifier 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(174): error C2065: 'g_hBitmap' : undeclared identifier 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(175): error C2065: 'g_hBitmap' : undeclared identifier 1>c:\users\paweł staszewski\documents\visual studio 2010\projects\yeawinapi\yeawinapi\yeawinapi.cpp(177): error C2065: 'g_hBitmap' : undeclared identifier
UINT APIENTRY OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam ) { if( uiMsg == WM_INITDIALOG ) { Beep( 500, 200 ); } HBITMAP g_hBitmap, hbmDefault; HDC hDC = GetDC( hwnd ), g_Preview, g_hDCMem; g_hDCMem = CreateCompatibleDC( hDC ); assert( g_hDCMem ); ReleaseDC( hwnd, hDC ); switch( uiMsg ) { case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint( hdlg, & ps ); g_Preview = GetWindowDC( HWND_DESKTOP ); if( g_Preview && g_hBitmap && g_hDCMem ) { HWND hFrame = GetDlgItem( hdlg, IDC_RAMKA ); RECT rcFrame; GetWindowRect( hFrame, & rcFrame ); int w = rcFrame.right - rcFrame.left; int h = rcFrame.bottom - rcFrame.top; BITMAP bm; GetObject( g_hBitmap, sizeof( BITMAP ), & bm ); ScreenToClient( hdlg,( LPPOINT ) & rcFrame ); ScreenToClient( hdlg,( LPPOINT ) & rcFrame.right ); hbmDefault = SelectBitmap( g_hDCMem, g_hBitmap ); StretchBlt( hdc, rcFrame.left, rcFrame.top, w, h, g_hDCMem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY ); SelectBitmap( g_hDCMem, hbmDefault ); } EndPaint( hdlg, & ps ); } break; case WM_NOTIFY: { NMHDR * pnmhdr =( NMHDR * ) lParam; OFNOTIFY * ofnot =( OFNOTIFY * ) lParam; if( pnmhdr->code == CDN_SELCHANGE ) { SendMessage( hdlg, CDM_GETFILEPATH, sizeof( buffer ),( LPARAM ) & buffer ); LPSTR filename = buffer; FreeBitmap(); g_hBitmap =( HBITMAP ) LoadImage( GetModuleHandle( NULL ), filename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ); } else if( pnmhdr->code == CDN_FILEOK ) { FreeBitmap(); } } break; case WM_DESTROY: { FreeBitmap(); } break; } return 0; }
void FreeBitmap() { if( g_hBitmap ) { DeleteObject( g_hBitmap ); } g_hBitmap = NULL; }
|
|
pekfos |
» 2012-01-06 16:27:44 prefiks g_ zwykle informuje o tym że zmienna jest globalna. U Ciebie jest lokalna i wykorzystujesz ją jak globalną.. |
|
« 1 » |