C++ LPCWSTR Problem

war ja auch nur ein beispiel mit der registry
aber die andern hatten ja auch nciht geklappt

aber jetz soweit geht es
 
toxn schrieb:
Du musst bei den Projekteinstellungen auf Multibyte Character stellen und nicht auf Unicode. Schon gehts.

Naja, als flotten Workaround kann man das durchgehen lassen, aber eine Lösung ist das nicht wirklich. Besser wäre, wie schon von anderen angesprochen, das _T()-Makro und TCHAR statt char oder wchar_t zu verwenden. Dann klappt's immer, egal ob man nun die UNICODE oder die Multibyte character Einstellung verwendet.
 
antred schrieb:
Naja, als flotten Workaround kann man das durchgehen lassen, aber eine Lösung ist das nicht wirklich. Besser wäre, wie schon von anderen angesprochen, das _T()-Makro und TCHAR statt char oder wchar_t zu verwenden. Dann klappt's immer, egal ob man nun die UNICODE oder die Multibyte character Einstellung verwendet.

Warum Anfaenger mit irgendwelchen Konvertierungen quaelen wenns auch so geht ? Ich glaube nicht, dass er innerhalb des Projektes irgendwas mit unicode anfangen wird. Zumal viele Tutorials und vor allem Buecher in Sachen MFC durchgehend mit Multibyte CharacterSet arbeiten. Muss er fuer sich selber entscheiden.
 
toxn schrieb:
Ich nochmal:
Code:
RegCreateKeyEx(HKEY_CURRENT_USER,"Test",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0);

mit Multibyte Character Set laesst sich die Zeile bei mir problemlos kompilieren. Du hast sicherlich die falschen Einstellungen vorgenommen !!!!!

Das ist Bad Practise. Code sollte immer so angelegt sein, dass er sich als Unicode kompilieren lässt (und das ist nun auch wirklich nicht kompliziert -> _T("..") oder TEXT("..")). Von allem anderen ist dringend abzuraten!

P.S. Unicode ist für alle neuen Windows-Systeme der Standard! Gibst du Multibyte an, so muss es erst in Unicode übersetzt werden, bevor es ausgeführt wird!
 
Zurück
Oben