All'interno della mia app, voglio inviare un messaggio ad una finestra di dialogo da un thread diverso. Voglio passare un riferimento alla classe std :: exception derivato alla finestra di dialogo.Come inviare una stringa tramite PostMessage?
Qualcosa di simile a questo:
try {
//do stuff
}
catch (MyException& the_exception) {
PostMessage(MyhWnd, CWM_SOME_ERROR, 0, 0); //send the_exception or the_exception.error_string() here
}
voglio ricevere il messaggio nella mia finestra e mostrare l'errore che è in the_exception.error_string()
LPARAM CMyDlg::SomeError(WPARAM, LPARAM)
{
show_error(?????
return 0;
}
passando il std::string the_exception.error_string()
utilizzando PostMessage sarebbe anche ok, indovina.
Ciao, grazie mille per la tua risposta. hai dimenticato il cast per LPARAM PostMessage (MyhWnd, CWM_SOME_ERROR, 0, reinterpret_cast (nuova stringa (the_exception.error_string))); E come usare invece auto_ptr: std :: auto_ptr msg (reinterpret_cast (lParam)); Perché questo mostra il trasferimento di proprietà. –
rec
ouch, formattazione errata interruzione linea di test interruzione linea di test – rec
Non si tratta di una perdita di memoria? Dove stai distruggendo mai una nuova stringa()? –