bigpoint Geschrieben 20. April 2009 Geschrieben 20. April 2009 Hallo zusammen, ich muss mal long mal BYTE in _TCHAR Array konvertieren. Momentan mache ich es mit _stprintf_s, leider sobald der Parameter zu groß ist als angegeben schmiert das Programm logischerweise ab. Beispiel: Fun(BYTE value) { _TCHAR text[2]; _stprintf_s(text, 2, _T("%01d"), value); } [/PHP] Die einzige Lösung die mir Einfalt ist, den Wert einfach auf länge zu überprüfen, das einzige Problem dabei ist, dass es viele Funktionen sind Deshalb die Frage: kann man es schöner bzw. effizienter lösen? Gruß Zitieren
Klotzkopp Geschrieben 20. April 2009 Geschrieben 20. April 2009 Warum machst du den Puffer nicht einfach so groß, dass der maximal mögliche Wert hineinpasst? Zitieren
bigpoint Geschrieben 20. April 2009 Autor Geschrieben 20. April 2009 mache ich doch, leider sobald der Parameter zu groß ist als angegeben schmiert das Programm logischerweise ab und zwar ohne exception Zitieren
Klotzkopp Geschrieben 20. April 2009 Geschrieben 20. April 2009 mache ich doch,Nein, machst du nicht. Für %d mit BYTE brauchst du ein Array von fünf TCHARs, nicht zwei. und zwar ohne exceptionEine Exception ist bei einer Funktion aus einer C-Bibliothek auch kaum möglich. Welches Verhalten hättest du denn gern in so einem Fall? Wenn dir das Verhalten des Default-Handlers für ungültige Parameter nicht gefälllt, dann schreib doch deinen eigenen. Zitieren
bigpoint Geschrieben 21. April 2009 Autor Geschrieben 21. April 2009 Nein, machst du nicht. Für %d mit BYTE brauchst du ein Array von fünf TCHARs, nicht zwei. stimmt, bin ein schläfer :schlaf: Ich überprüfe einfach den value wert und gut ist es, danke Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.