Problem MessageBox



  • Hallo,
    habe vor längerer Zeit mal programiert, und wollte nun wieder ein bisschen anfangen! Aber gleich am Anfang traf ich auf einen komischen Fehler!

    Habe eine MFC-Anwendung auf Dialogbasis erstellt.
    Dann einen Button hinzufügt und ihm das Ereigniss BN_CLICKED zugewiesen.

    oid CHalloDlg::OnBnClickedButton1()
    {
    	// TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
    	MessageBox("Hallo");
    }
    

    Das alles ist ja nichts Besonderes.
    Wenn ich meine Anwendung aber complimieren möchte erhalte ich folgende Fehlermeldung:

    HalloDlg.cpp
    d:\daten\eigene daten\visual studio 2005\projects\hallo\hallo\hallodlg.cpp(163) : error C2664: 'CWnd::MessageBoxW': Konvertierung des Parameters 1 von 'const char [6]' in 'LPCTSTR' nicht möglich
            Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
    

    Früher hat das immer geklappt. Ich weiß auch nicht was das "W" hinter der MessageBox bedeuten soll!
    Für Hilfe wäre ich sehr dankbar!
    (Benutze jetzt eine neuere Version als früher (MS Visual C++ 2005))



  • oid CHalloDlg::OnBnClickedButton1()
    {
    	// TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
    	MessageBox(_T("Hallo"));
    }
    

    Versuchs mal so 😉



  • Cool, so klappt es!
    Aber warum jetzt so??
    Hat sich in der Quellcode eingabe viel geändert?



  • VS ist einiger Zeit auf unicode eingestellt (siehe dazu auch http://www.c-plusplus.net/forum/viewtopic-var-t-is-155754.html)
    Du kannst auch in den Compileroptionen auf MBCS zurückstellen, ist aber nicht zu empfehlen.



  • Hmm... ganz einfach... VC scheint die tchar.h zu nutzen... da man es so einfach hat nen Unicode oder einen non-Unicode build zu machen 😉


Anmelden zum Antworten