Wie schreibt man einen generischen alert-Nachricht mit win32?
Will ich einfach nur zu erweitern, folgende Methode in etwas mehr allgemein, und das sollten Sie akzeptieren jede Art von argument und anzeigen von mit MessageBox():
void alert(char *item)
{
MessageBox(NULL, item, "Message", MB_OK | MB_ICONINFORMATION);
}
Kann jemand helfen?
InformationsquelleAutor ukanth | 2009-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
os
im weiten char Fall. Ansonsten gute Antwort. +1Danke! gerade bearbeitet.
erste Funktion funktioniert perfekt 🙂
Die zweite Funktion ist nicht
specialization
. Es ist überladen. Und Sie verpasst;
imos << item
.InformationsquelleAutor Dewfy
Könnten Sie etwas schreiben wie folgt:
Sollten Sie spezialisieren
boost::lexical_cast
für ein argument-Typ, den Sie wollen, da es unterstützt eine begrenzte Palette von Typen.Andere Möglichkeit ist die Verwendung
boost::format
:Später könnte es verwendet werden, in der folgenden Weise:
können wir es tun ohne mit boost-Bibliothek ?
boost::lexcial_cast<T>
braucht nicht spezialisiert; implementieren Sie eine entsprechendeoperator<<(ostream&, T)
statt.boost::lexical_cast<> ist eine einfache Vorlage, Sie können nick die Umsetzung ohne ziehen alle von Boost.
UK, können Sie die gleichen ohne boost (mit streams). Aber
boost
macht das Leben leichter.InformationsquelleAutor Kirill V. Lyadvinsky
Seit C++ ist statisch typisiert sind, werden Sie wahrscheinlich benötigen, um eines von zwei Dingen tun:
toString()
" - Funktion (Java -/.NETTO-Ansatz). Der Nachteil hier ist, dassalert()
funktioniert jetzt nur für die Typen in der Klassen-Hierarchie.Außerdem sollten Sie sicher, dass Sie
MessageBoxA
wenn Sie mit ANSI-Zeichenfolgen, ansonsten sollten Sie erwägen, TCHAR und MessageBox oder wchar_t und MessageBoxW.InformationsquelleAutor Nick Meyer