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ß
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?
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
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.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden