Veröffentlicht 20. April 200916 j 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ß
20. April 200916 j Warum machst du den Puffer nicht einfach so groß, dass der maximal mögliche Wert hineinpasst?
20. April 200916 j Autor mache ich doch, leider sobald der Parameter zu groß ist als angegeben schmiert das Programm logischerweise ab und zwar ohne exception
20. April 200916 j 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.
21. April 200916 j Autor 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.