FormatMessage und va_list*



  • hallo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/formatmessage.asp

    ich würde gern Escape Sequence %0 benutzen, ich habe aber keine ahnung wie

    danke



  • Direkt:

    LPTSTR lpArgs[] =
        {
            TEXT("eins"),
            TEXT("zwei"),
            TEXT("drei")
        };
    
        TCHAR szMessage[256];
        PVOID pArgList = &lpArgs;
    
        FormatMessage(FORMAT_MESSAGE_FROM_STRING, TEXT("Bei %1 und %2 passt %3 nicht."), 0, 0, szMessage, 256, (va_list*)&pArgList);
        MessageBox(NULL, szMessage, NULL, MB_OK);
    

    Innerhalb einer Funktion:

    BOOL MyFormat(LPCTSTR lpFormatString, ...)
    {
      va_list vaList;
      TCHAR   szMessage[256];
    
        va_start(vaList, lpFormatString);
    
        FormatMessage(FORMAT_MESSAGE_FROM_STRING, lpFormatString, 0, 0, szMessage, 256, &vaList);
        MessageBox(NULL, szMessage, NULL, MB_OK);
    
        va_end(vaList);
    
      return(TRUE);
    }
    

    [edit]
    Allerdings gibt es %0 nicht, es wird bei 1 zu zählen angefangen. Dazu noch ein Zitat von der von Dir verlinkten Seite:

    A %1 in the format string indicates the first value in the Arguments array;

    [/edit]

    [ Dieser Beitrag wurde am 21.01.2003 um 14:07 Uhr von -King- editiert. ]



  • *Escape Sequence
    Meaning

    %0
    Terminates a message text line without a trailing new line character. This escape sequence can be used to build up long lines or to terminate the message itself without a trailing new line character. It is useful for prompt messages.*

    😉

    [ Dieser Beitrag wurde am 21.01.2003 um 14:34 Uhr von kwoTx editiert. ]



  • Ach Du Sch....
    Soweit runter hab ich gar nicht mehr gelesen. 🙄

    Damit ist mein Beitrag dann wohl tatsächlich zu 100% nutzlos.



  • hmm, kann das jetzt mal jemand erklären? Bin ganz durcheinander. 😕



  • danke

    Original erstellt von <Ein Interessierter>:
    hmm, kann das jetzt mal jemand erklären? Bin ganz durcheinander. 😕

    was genau?


Anmelden zum Antworten