Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - windows application
Forum - C/C++ - windows application

Avatar
zelda64 (Normal User)
Newbie


Messaggi: 4
Iscritto: 13/07/2011

Segnala al moderatore
Postato alle 19:04
Mercoledì, 20/07/2011
qualcuno sa dirmi perchè questo programma non parte
Codice sorgente - presumibilmente C++

  1. #include <windows.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <tchar.h>
  5.  
  6. int main()
  7. {
  8. int WINAPI WinMain (HINSTANCE hInstance,
  9.                     HINSTANCE hPrevInstance,
  10.                     LPSTR lpCmdLine,
  11.                     int nCmdshow);
  12.                      LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
  13.  WNDCLASSEX wcex;
  14.   wcex.cbSize = sizeof (WNDCLASSEX);
  15.    wcex.style = CS_HREDRAW | CS_VREDRAW;
  16.     wcex.lpfnWndProc = WndProc;
  17.      wcex.cbClsExtra = 0;
  18.      wcex.cbWndExtra = 0;
  19.       wcex.hInstance = hInstance;
  20.       wcex.hIcon LoadIcon = ( hInstance, MAKEINTRESOURCE (IDI_APPLICATION));
  21.        wcex.hCursor = LoadCursor (NULL, IDC_ARROW);
  22.        wcex.hbrBackground = (HBRUSH) (COLOR_WINDOW +1);
  23.         wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass;
  24.         wcex.hIconSm LoadIcon = ( wcex.hInstance, MAKEINTRESOURCE (IDI_APPLICATION));
  25. if (! RegisterClassEx (& wcex))
  26.      {
  27.         MessageBox(NULL,
  28.             _T("Call to RegisterClassEx failed!"),
  29.             _T("Win32 Guided Tour"),
  30.             NULL);
  31.         return 1;
  32.     }
  33. int WINAPI WinMain(HINSTANCE hInstance,
  34.                    HINSTANCE hPrevInstance,
  35.                    LPSTR lpCmdLine,
  36.                    int nCmdShow) ;
  37. {
  38.     WNDCLASSEX wcex;
  39.  
  40.     wcex.cbSize = sizeof(WNDCLASSEX);
  41.     wcex.style = CS_HREDRAW | CS_VREDRAW;
  42.     wcex.lpfnWndProc = WndProc;
  43.     wcex.cbClsExtra = 0;
  44.     wcex.cbWndExtra = 0;
  45.     wcex.hInstance = hInstance;
  46.     wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
  47.     wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
  48.     wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
  49.     wcex.lpszMenuName = NULL; wcex.lpszMenuName = NULL;
  50.     wcex.lpszClassName = szWindowClass;
  51.   wcex.hIconSm = LoadIcon (wcex.hInstance, MAKEINTRESOURCE (IDI_APPLICATION));
  52.  
  53.     if (!RegisterClassEx(&wcex))
  54.     {
  55.         MessageBox(NULL,
  56.              _T ("Chiamata alle RegisterClassEx fallita!"),
  57.             _T("Win32 Guided Tour"),
  58.             NULL);
  59.  
  60.         return 1;
  61.     }
  62.  
  63.     hInst = hInstance; // Store instance handle in our global variable hInst = hInstance; instance handle / / Store nella nostra variabile globale
  64.  
  65.     // The parameters to CreateWindow explained: / / I parametri da CreateWindow spiegato:
  66.     // szWindowClass: the name of the application / / SzWindowClass: il nome dell'applicazione
  67.     // szTitle: the text that appears in the title bar / / SzTitle: il testo che compare nella barra del titolo
  68.     // WS_OVERLAPPEDWINDOW: the type of window to create / / WS_OVERLAPPEDWINDOW: il tipo di finestra per creare
  69.     // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y) / / CW_USEDEFAULT, CW_USEDEFAULT: posizione iniziale (x, y)
  70.     // 500, 100: initial size (width, length) / / 500, 100: dimensioni iniziali (larghezza, lunghezza)
  71.     // NULL: the parent of this window / / NULL: il genitore di questa finestra
  72.     // NULL: this application dows not have a menu bar / / NULL: questa applicazione finestre non hanno una barra dei menu
  73.     // hInstance: the first parameter from WinMain / / HInstance: il primo parametro da WinMain
  74.     // NULL: not used in this application / / NULL: non utilizzato in questa applicazione
  75.     HWND hWnd = CreateWindow(
  76.         szWindowClass,
  77.         szTitle,
  78.         WS_OVERLAPPEDWINDOW,
  79.         CW_USEDEFAULT, CW_USEDEFAULT,
  80.         500, 100,
  81.         NULL,
  82.         NULL,
  83.         hInstance,
  84.         NULL
  85.     );
  86.  
  87.     if (!hWnd)
  88.     {
  89.         MessageBox(NULL,
  90.             _T("Call to CreateWindow failed!"),
  91.             _T("Win32 Guided Tour"),
  92.             NULL);
  93.  
  94.         return 1;
  95.     }
  96.  
  97.     // The parameters to ShowWindow explained: / / I parametri da ShowWindow spiegato:
  98.     // hWnd: the value returned from CreateWindow / / HWnd: il valore restituito da CreateWindow
  99.     // nCmdShow: the fourth parameter from WinMain / / NCmdShow: il quarto parametro da WinMain
  100.     ShowWindow(hWnd, ShowWindow (hWnd, nCmdShow);
  101.     UpdateWindow(hWnd);
  102.  
  103.      // Loop di messaggi principali:
  104.     MSG msg;
  105.     while (GetMessage(&msg, NULL, 0, 0))
  106.     {
  107.         TranslateMessage(&msg);
  108.         DispatchMessage(&msg);
  109.     }
  110.  
  111.     return (int) msg.wParam;
  112. } }


mi da questi errori
19 C:\Dev-Cpp\main.cpp `hInstance' undeclared (first use this function)
20 C:\Dev-Cpp\main.cpp expected `;' before "LoadIconA"
23 C:\Dev-Cpp\main.cpp `szWindowClass' undeclared (first use this function)
24 C:\Dev-Cpp\main.cpp expected `;' before "LoadIconA"
30 C:\Dev-Cpp\main.cpp [Warning] passing NULL used for non-pointer converting 4 of `int MessageBoxA(HWND__*, const CHAR*, const CHAR*, UINT)'
46 C:\Dev-Cpp\main.cpp [Warning] cast from pointer to integer of different size
51 C:\Dev-Cpp\main.cpp [Warning] cast from pointer to integer of different size
58 C:\Dev-Cpp\main.cpp [Warning] passing NULL used for non-pointer converting 4 of `int MessageBoxA(HWND__*, const CHAR*, const CHAR*, UINT)'
75 C:\Dev-Cpp\main.cpp `szTitle' undeclared (first use this function)
92 C:\Dev-Cpp\main.cpp [Warning] passing NULL used for non-pointer converting 4 of `int MessageBoxA(HWND__*, const CHAR*, const CHAR*, UINT)'
100 C:\Dev-Cpp\main.cpp `nCmdShow' undeclared (first use this function)

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
4
Down
V
Segnala al moderatore
Postato alle 19:48
Mercoledì, 20/07/2011
che ci fa il main dentro il winmain?

lascia perdere dev-cpp, usa visual c++ 2010.

Ultima modifica effettuata da HeDo il 20/07/2011 alle 19:50
PM
Avatar
comina8 (Normal User)
Pro


Messaggi: 86
Iscritto: 18/06/2011

Up
2
Down
V
Segnala al moderatore
Postato alle 19:47
Mercoledì, 20/07/2011
Non sono un esperto delle API di winzozz però int WINAPI WinMain corrisponde a int main del C ANSI...
Quindi inizia a usarne solo uno e a includere il codice nelle opportune parentesi
proprio come fosse un "int main" (SENZA ';')...
Poi vediamo che altri errori ti da...

Ultima modifica effettuata da comina8 il 20/07/2011 alle 19:49
Windows si chiama Windows e Linux si chiama Linux. Non esistono nè winzozz nè linzozz ... - nessuno - 21/07/11 10:03
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 19:53
Mercoledì, 20/07/2011
Che ci fanno due winmain dentro una main ??

Diciamo che il problema non è DevCpp o Visual Studio, ma le basi del linguaggio, che devi studiare prima di scrivere o compilare codice.

Ma passare a visual studio sarebbe cosa buona :D - arack95 - 21/07/11 02:31


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM