Salve, ho un problema con un programma; il compilatore mi dà questo errore:
"resource.h(3) : fatal error RC1004: unexpected end of file found".
Questo è il codice cpp:
codice:
#include <windows.h>
#include "resource.h"
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
static TCHAR szAppName[] = TEXT("About");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(hInstance, szAppName);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = szAppName;
wndclass.lpszClassName = szAppName;
RegisterClass(&wndclass); //registrazione della classe
hwnd = CreateWindow(szAppName, //nome della classe window
TEXT("Programma che usa una finestra di dialogo About"), //titolo della finestra(barra del titolo)
WS_OVERLAPPEDWINDOW, //stile window
GetSystemMetrics(SM_CXSCREEN) / 4, //posizione x iniziale
GetSystemMetrics(SM_CYSCREEN) / 4, //posizione y iniziale
GetSystemMetrics(SM_CXSCREEN) / 3, //dimensione x iniziale(larghezza)
GetSystemMetrics(SM_CXSCREEN) / 3, //dimensione y iniziale(altezza)
NULL, //handle alla finestra genitore
NULL, //handle al menù della finestra
hInstance, //handle all'istanza del programma
NULL); //parametri di creazione
ShowWindow(hwnd, nCmdShow); //disegna la finestra sullo schermo, con le impostazioni iniziali date dall'utente
UpdateWindow(hwnd); //disegna l'area client della finestra
//ciclo dei messaggi
while (GetMessage(&msg, NULL, 0, 0)) //recupera un messaggio dalla coda (restituisce FALSE (0) solo per WM_QUIT)
{
TranslateMessage(&msg); //opera alcune modifiche al messaggio a seconda della tastiera
DispatchMessage(&msg); //invia il messaggio alla window procedure appropriata
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HINSTANCE hInstance;
switch(message)
{
case WM_CREATE:
hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
return 0;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDM_APP_ABOUT:
DialogBox(hInstance, TEXT("Finestra di About"), hwnd, AboutDlgProc);
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
BOOL CALLBACK AboutDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hDlg, 0);
return TRUE;
}
break;
}
return FALSE;
}
Questo è il file di risorsa:
codice:
#include "resource.h"
//Finestra di dialogo
ABOUTBOX DIALOG 32, 32, 180, 100
STYLE DS_MODALFRAME | WS_POPUP
FONT 8, "Ms Sans Serif"
BEGIN
DEFPUSHBUTTON "Ok", IDOK, 66, 80, 50, 14
ICON "ABOUT", IDC_STATIC, 7, 7, 21, 20
CTEXT "About", IDC_STATIC, 40, 12, 100, 8
CTEXT "Programma che usa una finestra di dialogo About", IDC_STATIC, 7, 40, 166, 8
CTEXT "(c) Minnoozzi Corrado, 2009", IDC_STATIC, 7, 52, 166, 8
END
//Menu
ABOUT MENU
BEGIN
POPUP "&Aiuto"
BEGIN
MENUITEM "&Informazioni su...", IDM_APP_ABOUT
END
END
//Icona
ABOUT ICON "About.ico"
Infine questo è il file resource.h:
codice:
#define IDM_APP_ABOUT 5000
#define IDC_STATIC 5001