int zu TCHAR oder LPCSTR



  • Hey!

    Es gibt bestimmt einige Möglichkeiten. Jedoch klappt es bei mir nicht.
    Habs mal so versucht:

    TCHAR        szFps[128];
    
    	sprintf_s(szFps, "FPS: %.2f", 99);
    
    	SetRect(&rect, 10, 10, 0, 0);        
        d3dFont->DrawText(NULL, szFps, -1, &rect, DT_NOCLIP, D3DCOLOR_ARGB(200,255,255,0));
    

    Und trotzdem ist die Ausgabe FPS: 0.00.
    Sollte doch 99 sein?

    Eigentlich braucht die Funktion DrawText() ja LPCSTR. Wie wandle ich int am schnellsten in TCHAR oder am besten in LPCSTR um?

    MfG



  • du wandelst da int in float um

    so funzt das bei mir einwandfrei

    TCHAR szFps[128];
    float sf = 99.552698;
    sprintf(szFps, "FPS: %.02f", sf);
    MessageBox(szFps);



  • Hallo

    bei mir bringt der Compiler (MinGW) bei deinem Code sogar eine Warnung.
    Denn du must explizit sagen, das 99 eine Gleitkommazeit sein soll, sonstr versucht der Compiler eine Integer-Zahl als float zu interpretieren.

    sprintf_s(szFps, "FPS: %.2f", 99.0);
    

    bis bald
    akari



  • Funzt, danke!

    MfG



  • Es sei allerdings noch erwähnt, dass TCHAR und sprintf nicht zusammenpassen. Für TCHAR nimmst du am besten die Funktionen aus <tchar.h>. In dem Fall wäre das _stprintf bzw. _stprintf_s.


Anmelden zum Antworten