Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

12.05.2014, 18:55

Zitat


C-/C++-Quelltext

1
const wchar_t* szClassName[] = "erstes Fenster";

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
hWnd = CreateWindowExW(NULL,
        szClassName,
        "Das erste Fenster!",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        100, 100,
        300, 250,
        NULL,
        NULL,
        hInst,
        NULL);



Das geht so nicht ;)

C-/C++-Quelltext

1
const wchar_t* szClassName = L"erstes Fenster";

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
hWnd = CreateWindowExW(NULL,
        szClassName,
        L"Das erste Fenster!",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        100, 100,
        300, 250,
        NULL,
        NULL,
        hInst,
        NULL);


Wenn du jetzt noch sicher stellst, dass in den Projekteinstellungen dein Zeichensatz auf "Unicode" steht, sollte alles wie gewünscht funktionieren.

Btw.: Du kannst und solltest die W's hinter den API Funktionen weglassen. Somit zeigt dir der Compiler auch entsprechende Castingfehler an, falls deine Projekteinstellungen nicht mit Unicode übereinstimmen - und zudem hast du 2% weniger Schreibarbeit ;) Vermischen solltest du Makros und explizite Funktionen niemals. (Siehe LoadCursor und CreateWindowExW)

Edit:

C-/C++-Quelltext

1
windowclass.hCursor = LoadIcon(NULL, IDC_ARROW);
Geht zwar so, ist aber bestimmt nicht das beabsichtigte Verhalten. Nutze das LoadCursor() Makro stattdessen ;)
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »iSmokiieZz« (12.05.2014, 19:05)


22

12.05.2014, 19:33

ach das "L" war beabsichtigt ^^ dachte das sei ausversehen mit reingerutscht.
ja, ist auf Unicode gestellt habe ich schon überprüft.

Und es klappt :D wunderbar vielen dank.

Das mit dem hCursor verstehe ich allerdings nicht. Das ist mein allererstes listing mit windoof funktionen.
also soll ich statt

windowclass.hCursor = LoadIcon(NULL, IDC_ARROW)

lieber

windowclass.hCursor = LoadCursor(NULL, IDC_ARROW)

benutzen?

EDIT: Ah ich verstehe was der Unterschied ist :D
bekomme statt dem Mauszeiger das symbol für eine .exe Datei ^^
Mit
windowclass.hCursor = LoadCursor(NULL, IDC_ARROW)
sieht es besser aus

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

23

13.05.2014, 01:10

Verstehst du auch was es mit dem L und dem wchar_t auf sich hat, bzw. was der Unterschied zu char ist?

24

17.05.2014, 18:09

wenn ich das richtig verstanden habe, dann ist wchar_t ein "größeres" char. und das L ist teil der syntax von wchar_t?

Werbeanzeige