Oppure

Loading
11/12/10 17:24
xVince
Ciao a tutti, scusate se ho sbagliato sezione ma sono nuovo anche se seguo già da un po pierotofy.it che mi ha aiutato davvero molto col python :)

Allora la mia domanda è questa:

Sempre dal vostro forum tramite il bottone cerca( in una discussione) ho trovato questo sito: aleax.it/… che devo dire mi sta aiutanto davvero molto con le winapi.

Il mio problema è che sono arrivato alla quinta lezione ( i messaggi ) quando vado a compilare e ad eseguire il mio programma ( main.c ) mi da i seguenti errori :

1. C:\Users\Administrator\Documents\DialogProcComplete\main.c In function `WinMain':


2. C:\Users\Administrator\Documents\DialogProcComplete\main.c `unaDlgProc' undeclared (first use in this function)

3. (Each undeclared identifier is reported only once

4. for each function it appears in.)


5. C:\Users\Administrator\Documents\DialogProcComplete\Makefile.win [Build Error] [main.o] Error 1



Premetto che Uso dev-c++ 4.9.9.2.


Ciao xVince Grazie a tutti in anticipo per l'aiuto!
aaa
11/12/10 18:00
HeDo

1) Lascia perdere dev-cpp, scarica visual c++ express che è centomila volte meglio

2) quegli errori indicano che non hai dichiarato la windowproc della finestra, quando chiami la registerclass c'è un campo della WNDCLASS che rappresenta l'indirizzo della funzione che gestisce i messaggi che il sistema manda alla finestra. Quella funzione non è definita.
aaa
11/12/10 18:02
xVince
Ciao!

Grazie mille x la tempestiva risposta sto penando per risolvere questo problema !

ho scarica visual c++ express 2010 e l'ho installato

P.S sarà che sono nabbo ma l'interfaccia di devcpp mi risulta molto + amichevole rispetto quella di visual

ora guardo il problema e vedo GRz mille ora ti faccio sapere!
aaa
11/12/10 18:09
xVince
Allora SCUSA L'IMMENSA IGNORANZA.

non ho capito bene cosa devo dichiarare;
io nel file miodialogo.rc ho inserito questo codice
#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
BOOL CALLBACK unaDlgProc(HWND hwndDlg,
  UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if(uMsg==WM_CLOSE) {
        EndDialog(hwndDlg, 0);
        return TRUE;
    }
    return FALSE; 
}



io "unaDlgProc" l'ho dichiarata no?

lool in questa lezione non ci sto capendo nulla.
Ultima modifica effettuata da xVince 11/12/10 18:09
aaa
11/12/10 18:27
xVince
Postato originariamente da HeDo:


1) Lascia perdere dev-cpp, scarica visual c++ express che è centomila volte meglio

2) quegli errori indicano che non hai dichiarato la windowproc della finestra, quando chiami la registerclass c'è un campo della WNDCLASS che rappresenta l'indirizzo della funzione che gestisce i messaggi che il sistema manda alla finestra. Quella funzione non è definita.



Ho rifatto il progetto in visual c++ , sono rimasto un po deluso dal fatto che nella versione express i file .rc non possano essere modificati :d ,vabbè.

comunque avevi ragione anche in visual c++ mi da lo stesso errore:
------ Inizio compilazione: Progetto: Dialog, Configurazione: Debug Win32 ------
  Dialog.cpp
c:\users\administrator\documents\visual studio 2010\resource-build\finestra\dialog\dialog\dialog.cpp(10): error C2065: 'unaDlgProc': identificatore non dichiarato
========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========


il problema è che da totale ignorante non ho capito cosa devo dichiarare. Spero in un tuo aiuto :)
aaa
11/12/10 18:31
lorenzo
no, guarda che forse non hai capito bene il tutorial che stai seguendo.

In un file .rc, che è un file di risorse, devi dichiarare solamente la "risorsa", cioé

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


mentre il resto, cioé la procedura scritta in codice C, devi dichiararla in un file .c ovviamente. Non devono stare nello stesso file.

Ti consiglio di imparare prima le basi del C(quindi la funzione dei file .rc, .h, .c) e di prenderti un vero libro per imparare la programmazione Win32(per esempio quelli di Charles Petzold sono ottimi)
aaa
11/12/10 18:35
xVince
Grazie per la risposta infatti ci stavo pensando di prendermi un libro;

Io mi sono Avvicinato da poco al c e il passagio da linguaggi side server come php a c mi sta risultando impegnativo.

Per il libro tu quali libro mi consiglieresti di comprare ?

Io l'altro giorno sono andato in libreria è ho trovato molti libri per imparare il c ma sopratutto libri sul c++ e anche libri del tipo "imparare il c in 24 ore ":asd: ( del tutto inutili ) Ho anche provato ha farmi consigliare dal commesso che, mi è sembrato che sapesse meno di me.

Percio ti rivolgo di nuovo la domanda, Qual è il libro migliore per imparare a programmare in c?
Ultima modifica effettuata da xVince 11/12/10 18:44
aaa
11/12/10 19:22
xVince
Grazie mille a tutti ma sopratutto grazie a lorenzo, finalmente ci sono riuscito GRAZIE MILLE!!

il codice andava nel file main cosi:
#include <windows.h>

BOOL CALLBACK unaDlgProc(HWND hwndDlg,
  UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if(uMsg==WM_CLOSE) {
        EndDialog(hwndDlg, 0);
        return TRUE;
    }
    return FALSE; 
}

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

aaa