Wewnątrz mojej aplikacji chcę wysłać wiadomość do okna dialogowego z innego wątku. Chcę przekazać odwołanie klasy std :: exception do okna dialogowego.Jak wysłać ciąg przez PostMessage?
coś takiego:
try {
//do stuff
}
catch (MyException& the_exception) {
PostMessage(MyhWnd, CWM_SOME_ERROR, 0, 0); //send the_exception or the_exception.error_string() here
}
Chcę otrzymywać wiadomości w mój dialog i pokazać błąd, który jest w the_exception.error_string()
LPARAM CMyDlg::SomeError(WPARAM, LPARAM)
{
show_error(?????
return 0;
}
minięciu std::string the_exception.error_string()
użyciu PostMessage byłoby również ok, ja odgadnąć.
Witam, bardzo dziękuję za odpowiedź. zapomniałeś obsady na LPARAM PostMessage (MyhWnd, CWM_SOME_ERROR, 0, reinterpret_cast (nowy ciąg (the_exception.error_string))); A co powiesz na temat używania auto_ptr zamiast: std :: auto_ptr msg (reinterpret_cast (lParam)); Ponieważ pokazuje to przeniesienie własności. –
rec
ouch, złe formatowanie przerwa linii testowej przerwa linii testowej – rec
Czy to nie jest wyciek pamięci? Gdzie niszczysz nowy ciąg()? –