PDA

View Full Version : [c] fscanf/fprintf e api di windows


Torav
17-01-2007, 13:55
ola a tutti, ho un problemone :help:
ho cominciato a fare un programmino gestionale in c utilizzando le api win32 (e me la stavo cavando benino prima del "fattaccio" :sofico: ). Ma ora ho mi sono imbattuto in un problemone... ho una funzione che recupera alcuni dati da file con diversi scanf uno dietro l'altro. Questa funzione viene chiamada da un dialog box che visualizza alcuni nomi di file in un list box. Da questo list box l'utente seleziona la pratica che vuole aprire, il dialog box si apre torna alla finestra principale e carica tutto in alcuni edit box e combo box.
Una volta aperta una pratica (e funziona tutto perfettamente :confused: ) posso modificare e salvare senza problemi, ma una volta che provo a riaprire di nuovo un'altra pratica il programma crasha senza rimedio... potrei postare il codice che credo sia all'origine del problema ma prima volevo sapere se nessuno sa niente di problemi legati all'utilizzo di fscanf e fprintf insieme alle api di windows. Il problema è che ho provato a mettere alcuni controlli (come farmi stampare su file o su messagebox alcuni dati per capire dove sia il problema), ma ogni volta che nella funzione che crasha richiamo fprintf(), fscanf() o MessageBox() il programma si pianta... :confused:
a qualcuno è mai capitato qualcosa del genere? :help:

andbin
17-01-2007, 14:34
volevo sapere se nessuno sa niente di problemi legati all'utilizzo di fscanf e fprintf insieme alle api di windows.Nessun problema .... in una applicazione Win32 puoi tranquillamente usare le funzioni standard di I/O sui file (fopen, fread, fprintf, ecc...).

Il problema è sicuramente altrove, che so ... sovrascrittura di memoria, utilizzo errato dei puntatori o cose del genere.

Torav
17-01-2007, 17:45
Nessun problema .... in una applicazione Win32 puoi tranquillamente usare le funzioni standard di I/O sui file (fopen, fread, fprintf, ecc...).

Il problema è sicuramente altrove, che so ... sovrascrittura di memoria, utilizzo errato dei puntatori o cose del genere.

prima di tutto grazie per la risposta :)
anche io credo sia un errore mio, ma la cosa che non mi spiego è che nella funzione che apre il file e salva i dati, anche se commento TUTTI gli fscanf e aggiungo un fprintf o un MessageBox come PRIMA istruzione della funzione dopo le dichiarazioni mi crasha lo stesso...non mi è mai capitata una cosa del genere :confused:

cionci
17-01-2007, 18:31
Ad occhio è un buffer overflow da qualche parte... Controlla che la memoria per tutti i puntatori sia allocata correttamente e che i dati scritti nei buffer non eccedano la dimensione dei buffer stessi...