ausführliche Fehlermeldung schreiben: eleganter Weg?
-
Hi!
Ich möchte in meinem Programm ausführliche Fehlermeldungen einfügen.
Bis jetzt habe ich immer folgendes verwendet.
char* error_msg = "sehr kurze Beschreibung"; int i = MessageBox(NULL, error_msg, _T("Fehler"), 0x03 | MB_ICONINFORMATION);Jetzt will ich aber viel mehr reinpacken
z.B.101 015 351 hat folgenden Fehler verursacht: 156 485 324
Es wurde kein gültiges irgentwas gemacht.
Wählen Sie ein gültiges irgentwas und führen Sie den Befehl noch einmal aus.
Gibt es einen eleganteren Weg als ein ewig langes char* mit vielen \n zu erstellen?
Wenn nicht, gibt es einen Befehl, der 2 char* zussammenzufügt oder muss ich das selbst schreiben?Edit:
p.s.: meine Funktionen geben bereits diese Zahlen zurrück (z.B.101 354 458), jetzt gilt es diese auszuwerten und auszugeben.
-
Entweder bist du im falschen Forum weil du nur "normales" C++ programmierst und kein C++/CLI oder du benutzt auch die in .Net gegebenen Möglichkeiten welche in dem Fall Exceptions wären, um Fehlerbehandlung durchzuführen.
-
ich nutze Microsoft Visual Studio .NET 2003
Das mit Exceptions klingt interessant, danke für den Vorschlag.
Jetzt habe ich ein besseres Wort als "Fehlermeldung" zum googeln ^^Edit:
Danke, der Hinweis war ziemlich interessant.
Leider weis ich jedoch immer noch nicht wie ein Profi eine so lange, ausführliche Beschreibung in die MessageBox bekommt.
Darum steht die Frage noch:
Ist es eine elegante Lösung einen ewig langen char* zu generieren und ihn dann per MessageBox anzuzeigen?
-
www.pat schrieb:
Gibt es einen eleganteren Weg als ein ewig langes char* mit vielen \n zu erstellen?Nicht wirklich. Du könntest dir höchstens eine eigene Dialogklasse für Fehlermeldungen anlegen und nach eigenem Bedarf zusammenbauen.
Wenn nicht, gibt es einen Befehl, der 2 char* zussammenzufügt oder muss ich das selbst schreiben?strcat() (aber besser ist es imho, mit std::string und Konsorten zu arbeiten und erst am Ende dort die char* rauszuholen)
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hi!
bei mir hat sich ein neues Problem aufgetan:
wenn ich die Zahl -001.002.003 übergebe (Punkte nur zum leichteren Lesen eingefügt)
int i = -001002003; meine_funktion(i);kommt eine komplett andere Zahl an: -262.658
Wenn ich die 2 Nullen am Anfang vermeide (also 1.002.003 oder 901.002.003) stimmts.
Wenn ich -001 übergebe stimmts auch.
Bei -001.002 stimmts wieder nicht, da bekomme ich -514;Kann mir bitte jemand sagen warum das so ist?
Warum beeinflussed diese 2 Nullen den Wert so sehr?
-
Hallo
Ich habe mal gehört: Bei Zahlen mit den man nicht rechnet, sollte man besser strings statt ints nehmen.
chrische
-
www.pat schrieb:
Warum beeinflussed diese 2 Nullen den Wert so sehr?
Führende Nullen machen das Literal zu einer Oktalzahl, z.B. 0100 = 64.
-
aaaah, vielen herzlichen Dank!