Fehler bei MessageBox("test1","test2",MB_YESNOCANCEL | MB_ICONINFORMATION)



  • hallo,
    ich kriege bei den aufruf

    MessageBox("test1","test2",MB_YESNOCANCEL | MB_ICONINFORMATION)
    

    die folgenden Fehlermeldung:

    error C2664: 'CWnd::MessageBoxW': Konvertierung des Parameters 1 von 'const char [63]' in 'LPCTSTR' nicht möglich

    die funktion erwartet auch in ersten und zweiten Parameter LPCTSTR als typ aber viele Beispiele im Bücher oder im Netz verwenden konstante String in der Parameter. d.h dass muss auch so bei mir funktionieren !?

    das Problem habe ich jetzt mit casting (LPCTSTR)gelöst.



  • Hast du die 2005er?
    mach mal ein _T() um deinen Text

    MessageBox(_T("test1"),_T("test2"),MB_YESNOCANCEL | MB_ICONINFORMATION)
    


  • ja ich habe visual studio 2005
    es klappt mit _T.
    gibt dieses Problem nur in der Version 2005 ?

    danke



  • Es ist kein Problem, sondern in VS2005 ist per default UNICODE aktiviert. Du hast bisher einfach die WinAPI falsch verwendet. Bisher war es auch schon zwingend notwendig das _T oder TEXT macro zu verwenden, wenn man portablen Code haben wollte. Da in der WinAPI (fast) alle Funktionen, welche Strings enthalten entweder auf XxxxA oder XxxxW gemappt werden.



  • MessageBox("test1","test2",MB_YESNOCANCEL | MB_ICONINFORMATION)
    


  • MessageBox(NULL,"test1","test2",MB_YESNOCANCEL | MB_ICONINFORMATION)
    


  • heimwerker schrieb:

    MessageBox("test1","test2",MB_YESNOCANCEL | MB_ICONINFORMATION)
    

    Dein Vorschlag stimmt Zeichen für Zeichen mit dem "fehlerhaften" Ausgangscode
    überein. Meinst du das Problem hängt mit der Tageszeit zusammen. 😕 😕

    Die Ursache des Problems hat Jochen ja wohl schon erklärt.



  • heimwerker schrieb:

    MessageBox(NULL,"test1","test2",MB_YESNOCANCEL | MB_ICONINFORMATION)
    

    Auch das ändert nichts.

    MessageBoxA(NULL,"test1","test2",MB_YESNOCANCEL | MB_ICONINFORMATION)
    

    So sollte es funktionieren.



  • Redhead schrieb:

    Meinst du das Problem hängt mit der Tageszeit zusammen. 😕 😕

    Da habe ich mich ja gekringelt vor Lachen. 😃
    (Sorry for OT)


Anmelden zum Antworten