[c++] visual studio kompiliert nur mit unicode?

BlackBox

Cadet 4th Year
Registriert
Sep. 2004
Beiträge
119
Hallo,

ich benutze seit kurzem visual studio 2005 für meine c++-Programme. Habe aber das Problem, dass ich lauter Fehler meldungen bekomme in der Art "kann 'char' nicht in 'LPCWSTR' konvertieren".
Soweit ich weiß liegt es nur daran, dass standardmäßig mit unicode zeichensatz kompiliert wird, also hab ich unter "Projekt Optionen" den Zeichensatz auf "Multy-Byte" bzw. "nicht festgelegt" umgestellt. Der Kompiler meckert aber in beiden Fällen immer noch.

Kann mir jemand weiter helfen?
 
Gleiche Problem hatte ich auch schon öfters. Hab dazu sogar hier im FOrum einen Thread erstellt.

Oft reicht das hier als Lösung:

Code:
RegOpenKeyEx(KEY,L"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0, KEY_ALL_ACCESS,&hkey);

RegOpenKeyEx ist so eine Funktion die einen LPCWSTR als Parameter erwartet.

Wenn das nicht klappt dann google mal nach folgenden Funktionen:
WideCharToMultiByte und MultiByteToWideChar

Hoffe das hilft dir weiter.
 
Danke erstmal für die Antwort. Du meinst also ich soll immer mit dem "L" vor jedem String arbeiten? Wollte das eigentlich vermeiden, weil ich zu faul dazu bin ;) (mit dem "TEXT"-Makro von vc++ kompilieren alle Programme ja auch problemlos). Ich wollte einfach ganz ohne Unicode-Routinen und das ganze Makro-"Gestrüpp" kompilieren, aber das scheint vc++ gar nicht zu unterstützen wenn ich das jetzt recht verstehe?

Edit: Argh, glaube ich habe jetzt meinen Fehler gefunden (eine Nacht drüber schlafen wirkt Wunder). Jetzt klappt alles so wie ich's wollte, ich war wohl einfach zu müde und entnervt gestern :rolleyes:
 
Zuletzt bearbeitet:
und wie hast du es jetzt gelöst?
 
Mein Problem war ganz simpel, hatte ein programm ohne unicode, aber vc++ benutzte std-mäßig unicode-zeichensatz. Nachdem ich die Option gefunden hatte, hab ich auf multybyte umgestellt, aber der Compiler hat weitergemeckert. Und zwar weil ich im Code zuvor was an den datentypen geändert (und dann vergessen) hatte. Das gab dann einen mix aus unicode und nicht unicode und die Fehler blieben.
Ich hab's einfach nicht mehr gepeilt gestern abend (tut mir leid dass ich dir deine Zeit gestohlen habe wegen meiner Unfähigkeit :rolleyes:)
 
Ist doch kein Problem ;)

Was meinst du wie viel Zeit ich hier den anderen schon gestohlen habe weil ich das Problem einfach nicht wirklich verstanden habe :D
 
Zurück
Oben