"%d" Anwendungsmöglichkeiten ...



  • Sers!

    Kann mir jemand von euch erklären ob es Möglich ist, eine Integer Variable mit ner MessageBox auszugeben ohne sprintf() zu benutzen? Ich hatte (hab mal sowas ähnliches gesehen konnte es aber leider nicht anwenden) an "%d" gedacht wobei dann wieder die Frage der Syntax wäre. Ich hab schon verschiedene Möglichkeiten ausprobiert aber es nicht so richtig hinbekommen. Casten funktioniert auch nicht .. also z. B.: (char*) int!

    Hat jemand ne Idee? Danke für eure Mühe!!



  • so, oder so ähnlich sollte das eigentlich klappen(bin mir aber nich ganz sicher, auch noch nicht lange dabei!)!

    int iNumber=23;
    char szNumber[sizeof(iNumber)];
    wsprintf(szNumber, "%i", iNumber);
    MessageBox(hwnd, szTitel, szNumber, MB_OK);
    

    probiers einfach mal aus und bastel wenn nötig noch dran rum

    [ Dieser Beitrag wurde am 28.06.2003 um 14:06 Uhr von CaGa editiert. ]



  • Kleine Kurrektur zum besseren Verständnis - sizeof(...) liefert nich die Länge von '23', sondern die Größe von int -> 4 (Bytes).

    M.T.



  • wie würde die korigierte variante dann aussehen?



  • Soweit ist / war mir das klar 😉 trotzdem danke!!

    Nur eigentlich wollt ich auf einen Code hinaus der ohne jegliche print() Funktion auskommt .. ob das Möglich ist?!
    Will die Anzahl der erstellten Variablen möglichst klein halten und bei deinem Beispiel müsste ich auch wieder ne neue char Variable erstellen was ich vermeiden will! Problem is halt ob das überhaupt anders Möglich ist?!



  • MessageBox erwartet LPCTSTR ... also const TCHAR*
    Da const TCHAR* kein int ist musst du eine temporäre variable erzeugen.
    Ich nehme mal an es geht dir hauptsächlich um den Schreibaufwand :p

    int CyberMessageBox(HWND hWnd,int iNumber,LPCTSTR lpCaption,UINT uType)
    {
        TCHAR Buffer[16];
        wsprintf(Buffer,TEXT("%d"),iNumber);
        return MessageBox(hWnd,Buffer,lpCaption,uType);
    }
    


  • ... dann kann man sich auch gleich eine MessageBox mit variablen Argumenten schreiben 😉

    M.T.



  • int CyberMessageBox(HWND hWnd , LPCTSTR lpCaption , UINT uType , LPCTSTR lpTextFormat , ... )
    {
        TCHAR Buffer[1024];
        ////////
        va_list pArgList;
        va_start(pArgList , lpTextFormat);
        wvsprintf( Buffer, lpTextFormat , pArgList);
        va_end(pArgList);
        return MessageBox(hWnd,Buffer,lpCaption,uType);
    }
    


  • Ich danke euch recht herzlich !! 😉


Anmelden zum Antworten