Dans mon application, je souhaite envoyer un message à une boîte de dialogue à partir d'un fil différent. Je veux passer une référence de classe dérivée std :: exception à la boîte de dialogue.Comment envoyer une chaîne via PostMessage?
Quelque chose comme ceci:
try {
//do stuff
}
catch (MyException& the_exception) {
PostMessage(MyhWnd, CWM_SOME_ERROR, 0, 0); //send the_exception or the_exception.error_string() here
}
Je souhaite recevoir le message dans ma boîte de dialogue et montrer l'erreur qui est the_exception.error_string()
LPARAM CMyDlg::SomeError(WPARAM, LPARAM)
{
show_error(?????
return 0;
}
passer le std::string the_exception.error_string()
en utilisant PostMessage serait également ok, je deviner.
Salut, merci beaucoup pour votre réponse. vous avez oublié la distribution dans LPARAM PostMessage (MyhWnd, CWM_SOME_ERROR, 0, réinterprétation_cast (nouvelle chaîne (the_exception.error_string))); Et pourquoi ne pas utiliser auto_ptr à la place: std :: auto_ptr msg (reinterpret_cast (lParam)); Parce que cela montre le transfert de propriété. –
rec
ouch, mauvais formatage test de saut de ligne test de saut de ligne – rec
N'est-ce pas une fuite de mémoire? Où détruisez-vous une nouvelle chaîne()? –