PDA

Visualizza la versione completa : [C] errore fscanf visual C


skricchi
26-05-2009, 17:00
ciao a tutti, sono nuova del forum ed ho un problema.....

sto creando una dll in visual C che deve inviare tramite una socket TCP un buffer. per quando vado a leggere, da un file di configurazione contenente i parametri per la connessione con il server, la funzione fscanf mi genera errore durante l'esecuzione....

ci sto sbattendo la testa :dh:
aiuto :cry:

Stoicenko
26-05-2009, 17:06
che genere di errore? il codice che lo genera qual'?

nessuno qui ha la sfera di cristallo..

skricchi
26-05-2009, 17:12
ciao,
praticamente la dll richiamata da una form visual basic....semplicemente mi si chiude l'applicazione in maniera brusca e mi compare la finestra di Windows "Si verificato un errore in Visual Basic. L'applicazione verr chiusa." .
L'istruzione :

fscanf(pfile,"%[^\n]\n",G_szIpSvr);

con pfile aperto il lettura e G_szIpSvr variabile globale di tipo char *.

MacApp
26-05-2009, 20:58
Originariamente inviato da skricchi
G_szIpSvr variabile globale di tipo char *.
Il valore di G_szIpSvr un indirizzo valido?

skricchi
27-05-2009, 09:26
Il valore di G_szIpSvr un indirizzo valido?

Non saprei....potrebbe dipendere dal fatto che non inizializzata??? Ti spiego. Praticamente io uso anche un'altra variabile dichiarata alla stesso modo che non mi da alcun problema...l'unica differenza che la inizializzo in un altro file dove ci sono altre funzioni dichiarandola come:

extern char *G_szWorkingPath = ".\\";

e poi la ridefinisco come

char *G_szWorkingPath;

nello stesso file dov' G_szIpSvr.

skricchi
27-05-2009, 09:36
potrebbe dipendere dal fatto che non inizializzata???

Non quello il problema...ho provato ad inizializzarlo a stringa vuota e mi chiude ugualmente l'applicazione..... :dh: :dh: :dh: :dh: :dh: :dh: :dh:

MacApp
27-05-2009, 10:19
Originariamente inviato da skricchi
Non quello il problema...ho provato ad inizializzarlo a stringa vuota e mi chiude ugualmente l'applicazione..... :dh: :dh: :dh: :dh: :dh: :dh: :dh:

Se la inizializzi come hai mostrato sopra, allora sbagli di sicuro.
Se invece la inizializzi in modo corretto, non conoscendo il resto del codice, impossibile diagnosticare il tuo problema.

Prova a ridurre ai minimi termini il tuo programma in modo che riproduca l'errore e "posta" il codice compilabile. I questo modo la probabilit che qualcuno possa aiutarti potrebbe aumentare.
;-)

oregon
27-05-2009, 11:22
Guarda che non basta avere il puntatore ... devi riservare lo spazio in memoria a cui questo puntera' ...

skricchi
27-05-2009, 11:24
scusate....
grazie lo stesso a tutti ma ho risolto....effettivamente andava allocato o spazio di memoria.... portando la funzione da un progetto all'altro pensavo di averla gi allocata :D :D

oregon
27-05-2009, 11:34
Originariamente inviato da skricchi
effettivamente andava allocato o spazio di memoria....

Appunto ... :madai!?:

Loading