PDA

Visualizza la versione completa : [C++] wxStaticText: SetLabel() va in segmentation fault


ste-linux
27-01-2011, 12:57
Ciao,
sto programmando in Ubuntu con wxWidgets.
In una funzione creata da me UpdateForm() devo aggiornare delle wxStaticText, ma quando arriva al comando
StaticText1->SetLabel(ValoreUno);
mi torna Segmentation Fault.
Alla funzione UpdateForm passo varie variabili da visualizzare.

Dove sbaglio?

LeleFT
27-01-2011, 13:27
Linguaggio di programmazione?
Posso supporre C++, ma questo va espressamente indicato nel titolo della discussione (vedi Regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Inoltre, il titolo stesso deve dare un'idea del contenuto della discussione... di problemi con wxStaticText immagino possano essercene a migliaia...


Correggo io.

Consiglio anche di postare un po' di codice, in modo da facilitare gli utenti nel ricercare il problema dell'errore.


Ciao. :ciauz:

ste-linux
27-01-2011, 13:46
Scusate per gli errori.

Il codice tutto li......



void wxTestDialog::UpdateForm(int x)
{
wxString testo;
if(!StaticText1)
{
testo.Printf( _("Prezzo %d"), x);
StaticText1->SetLabel(testo);
}
}


Segmentation Fault alla riga StaticText1->SetLabel(Foobar);

LeleFT
27-01-2011, 14:26
E, sempre come espressamente indicato nello stesso regolamento che ti ho linkato (per leggerlo!), il codice va postato all'interno degli appositi tag CODE.

Sistemo anche questa.

Ad ogni modo... sei sicuro di questa condizione?



if( !StaticText1 )



Ciao. :ciauz:

ste-linux
27-01-2011, 15:53
Si sono sicuro della condizione!
Probabilmente per qualche motivo che mi sfugge la mia funzione non ha i permessi di scrittura nelle statictext...
Non ho altra spiegazione.

linoma
27-01-2011, 15:56
Multithreads?

ste-linux
27-01-2011, 15:59
Si...
non so come risolvere il problema....

linoma
27-01-2011, 16:01
Se il resto corretto e funzionante il motivo quello, succede anche su NET, dei far scrivere al thread principale, la cs + semplice.

ste-linux
27-01-2011, 16:07
tutto corretto e funzionante, l'unica cosa che non riesco a risolvere proprio l'aggiornamento delle statictext!
ora provo come dici a fare l'aggiornamento dal principale e vediamo

linoma
27-01-2011, 16:11
Prova ad usare wxMutexGuiEnteri (http://docs.wxwidgets.org/trunk/group__group__funcmacro__thread.html#g6671c1599fd4 ccf6a7c7bb90b2304709) forse riesci.

Loading