Hallo!
Ich bin neu auf diesem Forum, also will ich erstmal schöne Grüße und ein großes Hallo hier in die Runde rufen!
Kommen wir zur Sache:
Ich hab ein Problem. Momentan lerne ich C++ aus dem Buch "C++ für Spieleprogrammierer" von Heiko Kalista.
Ich bin gerade in Kapitel 10. Dort wird ein Sample gezeigt, wie man ein eigenes Fenster erstellt.
Das sieht so aus:
Alles anzeigen
Ja, Das Problem ist nur, dass mir jetzt beim kompilieren 2 fette Fehlermeldungen raus gehauen werden:
Ich bitte euch, was ist daran falsch? Ich selbst kann es nicht lösen, dazu sind zu viel neue Begriffe enthalten. Dürften so 80% des ganzen Samples sein..... :-/
Ich danke schon mal für eure Hilfe.
mfg
ich^^
Ich bin neu auf diesem Forum, also will ich erstmal schöne Grüße und ein großes Hallo hier in die Runde rufen!
Kommen wir zur Sache:
Ich hab ein Problem. Momentan lerne ich C++ aus dem Buch "C++ für Spieleprogrammierer" von Heiko Kalista.
Ich bin gerade in Kapitel 10. Dort wird ein Sample gezeigt, wie man ein eigenes Fenster erstellt.
Das sieht so aus:
Quellcode
- // C++ für Spieleprogrammierer
- // Listing 10.1
- // Ein Windows-Grundgerüst
- //
- #include <windows.h>
- // Prototyp der Callback-Funktion
- LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
- WPARAM wParam, LPARAM lParam);
- // Hauptprogramm
- //
- int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
- LPSTR lpcmdline, int ncmdshow)
- {
- WNDCLASSEX windowclass; // Struktur für Fenstereigenschaften
- HWND hWnd; // Fenster-Handle
- MSG message; // Nachricht
- // Der Klassen-Name des Fensters ist frei wählbar
- const char szClassName[] = "First Window";
- // Struktur mit gewünschten Eigenschaften füllen
- //
- // Größe der Struktur zwischenspeichern
- windowclass.cbSize = sizeof (WNDCLASSEX);
- // Fenster soll beim Verschieben neu gezeichnet werden
- windowclass.style = CS_HREDRAW | CS_VREDRAW;
- // Zeiger auf Callback-Funktion
- windowclass.lpfnWndProc = WindowProc;
- // Keine erweiterten Einstellungen
- windowclass.cbClsExtra = 0;
- windowclass.cbWndExtra = 0;
- // Instanz speichern
- windowclass.hInstance = hInst;
- // Icons und Cursor festlegen
- windowclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
- windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
- windowclass.hCursor = LoadCursor (NULL, IDC_ARROW);
- // Hintergrundfarbe festlegen
- windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1;
- // Ein Menü brauchen wir nicht
- windowclass.lpszMenuName = NULL;
- // Klassenname angeben
- windowclass.lpszClassName = szClassName;
- // Fensterklasse registrieren
- if (!RegisterClassEx (&windowclass) )
- return (0);
- // Das Fenster erzeugen
- hWnd = CreateWindowEx (NULL,
- szClassName,
- "First Window!",
- WS_OVERLAPPEDWINDOW | WS_VISIBLE,
- 100, 100,
- 300, 250,
- NULL,
- NULL,
- hInst,
- NULL);
- // Prüfen, ob alles glatt ging
- if (hWnd == NULL)
- return (0);
- // Der "Herzschlag" des Programms.
- // Hier werden alle Nachrichten abgeholt,
- // übersetzt und weitergeleitet.
- while (GetMessage (&message, NULL, 0, 0) )
- {
- TranslateMessage (&message);
- DispatchMessage (&message);
- }
- // Programm beenden
- return (int)(message.wParam);
- } // WinMain
- // Callback-Funktion zur Nachrichtenverarbeitung
- //
- LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
- WPARAM wParam, LPARAM lParam)
- {
- // Messages auswerten
- switch (message)
- {
- // Fenster schließen? (Auch Alt-F4)
- case WM_DESTROY:
- {
- // Nachricht zum Beenden schicken
- PostQuitMessage (0);
- return (0);
- }
- // Wurde eine Taste gedrückt?
- case WM_KEYDOWN:
- {
- // Ja, also je nach Taste verzweigen
- switch (wParam)
- {
- // Wurde "Escape" gedrückt?
- case VK_ESCAPE:
- {
- // Ja, also Nachricht zum Beenden schicken
- PostQuitMessage (0);
- return (0);
- }
- }
- } break;
- }
- // Die Nachricht wurde nicht von uns verarbeitet, also
- // von Windows verarbeiten lassen.
- return (DefWindowProc (hWnd, message, wParam, lParam) );
- } // WindowProc
Ja, Das Problem ist nur, dass mir jetzt beim kompilieren 2 fette Fehlermeldungen raus gehauen werden:
------ Erstellen gestartet: Projekt: lernen021, Konfiguration: Debug Win32 ------
Fenster.cpp
q:\projekte c++\lernen021\lernen021\fenster.cpp(54): error C2440: '=': 'const char [13]' kann nicht in 'LPCWSTR' konvertiert werden
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
q:\projekte c++\lernen021\lernen021\fenster.cpp(70): error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [13]' in 'LPCWSTR' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Ich bitte euch, was ist daran falsch? Ich selbst kann es nicht lösen, dazu sind zu viel neue Begriffe enthalten. Dürften so 80% des ganzen Samples sein..... :-/
Ich danke schon mal für eure Hilfe.
mfg
ich^^