AfxMessageBox funktioniert nicht bei VS 2008
-
Habe jetzt endlich mal den großen Schritt gewagt von Visual c++ 6.0 nach Visual Studio 2008 zu wechseln.
Nachdem ich mal ein erstes Hello-World Programm zum testen gebaut habe,
AfxMessageBox("Hallo");bekomme ich bei der AfxMessageBox immer die folgende Fehlermeldung:
error C2665: "AfxMessageBox": Durch keine der 2 Überladungen konnten alle Argumenttypen konvertiert werden.
Gehe ich den Umweg über eine Variable, funktioniert das Programm.
Kann es sein, dass ich noch irgendwelche Grundeinstellungen ändern muß.
-
Schau mal nach, welches Character Set bei dir eingestellt ist.
Stells mal auf Multi-Byte und probier, ob es gehtoder du schreibst:
AfxMessageBox(_T("Hallo"));
-
Vielen Dank für den Hinweis.
Kaum macht's man richtig schon funktioniert's
Kann ich die Einstellung auch global für alle neuen Projekte übernehmen oder muß ich das jedesmal im nachhinein ändern ?
VG gorbo
-
Du solltest das nicht auf multibyte stellen. Unicode ist die Zukunft. Benutz anstatt dem _T("") lieber ein L"".
-
Machine schrieb:
Du solltest das nicht auf multibyte stellen. Unicode ist die Zukunft. Benutz anstatt dem _T("") lieber ein L"".
Und warum soll er das, wenn er mit _T Unicode und MBCS kompatibel ist

-
Beim Portieren von VC6 auf 2008 würde ich erstmal sicher NICHT auf Unicode umstellen.
Erstmal zusehen dass es mit 2008 überhaupt fehlerfrei läuft. Danach kann man dann immernoch auf Unicode umstellen. Hat den Vorteil dass man sich bei diversen Fehler nicht überlegen muss, ob sie davon kommen weil man von VC6 auf 2008 gewechselt hat, oder von der MB -> Unicode Umstellung.
-
Na gut, dann werde ich wohl zukünftig mit _T() arbeiten. In der MSDN wird es zumindest auch so gezeigt auch wenn ich es etwas umständlich finde

Dank und Gruß
gorbo