czClassName kann nicht konvertiert werden?!
-
mach es so:
const wchar_t szClassName[] = L"Erstes Fenster";du arbeitest nämlich mit Unicode, also musst du auch Unicode-Zeichenketten verwenden.
du kannst natürlich auch Unicode abschalten....
das gehste im Menü auf
Project -> [Pragramm Name] Properties -> Configuration Properties -> Generalbei der Combo-Box "Configuration", wählst du "All Configurations"
und dann ist da ein Feld bei "Project Defaults" namens "Character Set".
Da stellst du Multi-Byte Character Set ein.
-
oder Du benutzt
const TCHAR szClassName[] = TEXT("Erstes Fenster");Dann ist es egal ob Du UNICODE verwendest oder nicht

-
wuhuuu danke für die schnelle Hilfe!! Endlich!! Nach ca 1Monat sich rumärgern habe ich nun endlich mein erstes Windows Fenster aufm Display
DANKE!!Wo ist der Nachteil wenn ich Unicode ausschalte? Hat das irgendwelche Risiken oder Nebenwirkungen(ich stempel euch einfach mal als Ärzte oder Apotheker ab
)
-
so lange du keine Japanischen oder Russischen oder sonstwelche Buchstaben verwendest hat es
nach meinem Wissen keine Nachteile.Eher noch Vorteile, weil ein wchar_t doppelt so viel Speicher kostet wie ein char.
ist natürlich damit begründet, dass man mehr darin speichern kann.
bringe mal 40.000 Schriftzeichen in einem char unter, was maximal 256 Zeichen speichern kann O.o
-
Wenn Du Unicode deaktivierst, dann kannst Du Unicode nicht verwenden;)
Braucht man für den Anfang auch sicherlich nicht.
-
man sollte heutzutage immer unicode verwenden, es gibt keinen grund es nicht zu tun.
-
@nttan so wie ich das oben sehe gibt es gute Gründe es nicht zu tun

Ok ich gugge mal ob ich das in meiner deutschen Version auch hinkriege, danke für die Hilfe!
-
nttan schrieb:
man sollte heutzutage immer unicode verwenden, es gibt keinen grund es nicht zu tun.
Solange du
DragoXP schrieb:
keine Japanischen oder Russischen oder sonstwelche Buchstaben verwendest
gibt es keinen Grund, es zu tun.
-
Vorteil wiederrum wäre das Windows selbst Unicode benutzt und dann nicht erst selbst hin- und ggf. zurück konvertieren muss

-
Airdamn schrieb:
oder Du benutzt
const TCHAR szClassName[] = TEXT("Erstes Fenster");Dann ist es egal ob Du UNICODE verwendest oder nicht

- Endlich -
und alles andere ist Schwachsinn (char, wchar_t, LPCWSTR, ...).
-
Schwachsinn? Naja, das:
LPCWSTR szClassName = L"Erstes Fenster";funktioniert jedenfalls Problemlos!

Danke nochmal für eure Hilfe! Echt genial hier

-
Naja, aber nur *mit* Unicode...
-
Ne, das hat doch mit Unicode nix zu tun!
Du bringst hier was durcheinander:
In MSVC Projekten kann man eine *Define* setzen (UNICODE, _UNICODE); dieses Define ist nur ein *Define*!!!!!
Dieses wirkt sich auch *nur* auf tchar.h und windows.h aus...Du kannst aber *jederzeit* Unicode-Funktionen verwenden, auch wenn Du diese Defines *nicht* gesetzt hast!
-
Jochen Kalmbach schrieb:
Ne, das hat doch mit Unicode nix zu tun!
Du bringst hier was durcheinander:
In MSVC Projekten kann man eine *Define* setzen (UNICODE, _UNICODE); dieses Define ist nur ein *Define*!!!!!
Dieses wirkt sich auch *nur* auf tchar.h und windows.h aus...Du kannst aber *jederzeit* Unicode-Funktionen verwenden, auch wenn Du diese Defines *nicht* gesetzt hast!
Joar das ist mir schon klar, ich meinte aber eher, dass die Kombinationen aus A-, W- und Markovarianten der entsprechenden Funktionen, Strukturen etc. ein Problem sind, Beispiel:
LPCWSTR szClassName = L"Erstes Fenster"; // nur Unicode! WNDCLASS data; // A- oder W, also ANSI oder UNICODE... data.lpszClassName = szClassName;Das erzeugt beim kompilieren auf UNICODE keine Fehler, beim kompilieren auf ANSI jedoch schon, da 'data' ja auf dem Typ WNDCLASSA basiert (wegen des Makros).
Edit: Vertipper korrigiert