PDA

Visualizza la versione completa : [C++] API Win 32


Mauri94
15-03-2012, 10:24
Salve a tutti stavo studiando le API e sono proprio all'inizio, stavo seguendo l'unica guida italiana che c' sul web e devo dire che non cos difficile. Ma non capisco una cosa. Io compilo con Dev C++, e son arrivato allo studio dei dialoghi. Dunque:



#include <windows.h>
MioDialogo DIALOG DISCARDABLE 0, 0, 186, 92
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Un Dialogo vuoto" FONT 8, "MS Sans Serif"
BEGIN
END


Io ho creato all'interno del mio progetto su Dev C++ questo sorgente di nome DIALOGO.RC. Il main il seguente:



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
DialogBoxParam(0,"MioDialogo",0,0,0);
return 0;
}


Quando compilo tutto okay, ma appena eseguo la finestra si chiude immediatamente, impossibile da vedere all'occhio nudo. Inoltre ho messo un system("pause") che comunque ha fermato tutto ma questa famosa finestra con il tasto 'x' non uscita, c'era solo la finestra del terminale con 'premi un tasto per continuare'.. mi aiutereste a capire? Il sito dice che dovrebbe uscire una finestra con la crocetta 'X'

linoma
15-03-2012, 10:54
Credo che sia sbagliato "MioDialogo", deve essere numerico.

oregon
15-03-2012, 10:54
Ma tu hai creato un progetto Console ?

Mauri94
15-03-2012, 10:59
Ho semplicemente creato una cartella con due file: l'RC e .cpp (main). Se io provo ad usare la funzione MessageBox () il pop-up esce correttamente.

oregon
15-03-2012, 12:36
Devi creare un progetto (windows app) e includere i due file.

Altrimenti come fanno il compilatore e il linker a sapere che i due file sono "legati" l'uno all'altro?

Mauri94
15-03-2012, 12:42
Windows Application?

oregon
15-03-2012, 12:44
S ...

Mauri94
15-03-2012, 13:56
Bene, ora mi da un errore di compilazione sulla riga:


STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

[Resource error] syntax error
***[API_private.res] Error 1

oregon
15-03-2012, 14:01
A me no ...

Cosa hai fatto esattamente?

Mauri94
15-03-2012, 14:02
Ho creato un nuovo progetto di tipo Window Application. In questo progetto, nel file main.cpp, ho eliminato tutto e incollato ci che mi serve (il main che ho scritto precedentemente), poi ho aggiungo al progetto il mio file DIALOGO.RC.

Loading