Problem bei meine Fenster



  • Hallo Leute

    Ich bin jetzt an meine Fenster.
    Ich habe zwei Fehler ich weiß nicht wie ich die zwei Fehler beheben kann.

    Hier der Code:

    // Programmskelett für die Neo-Engine V1.0
    // Programmier: Nero
    
    #include "Programmskelett.h"
    
    // Vorwärtsdeklaration:
    // Routine für Fenster-Ereignisse
    LRESULT CALLBACK WndProc (HWND hWnd, 
      UINT iMessage, WPARAM wParam, LPARAM lParam);
    
    // Hauptfunktion für Windows-Applikationen
    int WINAPI WinMain
      (HINSTANCE hInstance, HINSTANCE hPrevInstance, 
       LPSTR lpCmdLine, int nShowCmd)
    {
      // Fensterklasse initialisieren
      WNDCLASS Win;     // Objekt der Fensterklasse
      MSG      msg;     // Aktuelle Meldung
    
      // Extrabytes für Klassen/Fensterinstanz
      Win.cbClsExtra = 0;
      Win.cbWndExtra = 0;
      // Instanz der Fensterklasse
      Win.hInstance  = hInstance;    
      // Symbol und Cursor der Fensterklasse
      Win.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
      Win.hCursor = LoadCursor(NULL, IDC_ARROW);
      // Hintergrundfarbe (schwarz) und Fensterstil
      Win.hbrBackground = 
        (HBRUSH)GetStockObject(BLACK_BRUSH);
      Win.style = CS_HREDRAW | CS_VREDRAW;
      // Verknüpfung mit Ereignis-Routine
      Win.lpfnWndProc = WndProc;
      // Name der Fensterklasse
      Win.lpszClassName = "???";
      Win.lpszMenuName = NULL;    // kein Menü
      // Registrierung der Fensterklasse
      RegisterClass (&Win);
      // Fenster erzeugen
      GHandle = CreateWindow (Win.lpszClassName, 
        "Neo-Engine", WS_TILED, 
        CW_USEDEFAULT, CW_USEDEFAULT, MaxWidth, 
        MaxHeight, NULL, NULL, hInstance, NULL);
      if (!GHandle)
      {
        return 0;  // nicht ok
      }
      // Fenster zeigen und "auffrischen"
      ShowWindow   (GHandle, nShowCmd);
      UpdateWindow (GHandle);
    
      // "Hauptschleife"
      isRunning = true;
      while (isRunning) 
      {
        // Fenstereignisse abfragen
        while 
          (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
        {
          if (!GetMessage(&msg, NULL, 0, 0 ))
          {
            isRunning = false;
            break;
          }
          // Ereignisdaten "übersetzen", weiterschicken
          TranslateMessage (&msg);
          DispatchMessage  (&msg);
        }
      }
      // Programmende
      return 1;  // ok
    }
    
    // Verarbeitung der Meldungen des Hauptfensters
    LRESULT CALLBACK WndProc (HWND hWnd, 
      UINT iMessage, WPARAM wParam, LPARAM lParam)
    {
      // Ereignis auswerten
      switch (iMessage)
      {
        case WM_KEYDOWN:
        {
          switch (wParam)
          {
            case VK_ESCAPE:  // Ende mit [Esc]-Taste
            {
              PostMessage(hWnd, WM_QUIT, 0, 0);
            }
          }
        }
        // ansonsten Ereignis an "Default-Handler"
        default:
          return DefWindowProc 
            (hWnd, iMessage, wParam, lParam);
      }
      return 0;
    }
    

    Könne ihr heilfen ?



  • Hallo,

    Was sind denn deine zwei Fehler?



  • Ok jetzt hab nur eine und ist auf Linie 40



  • 40, 41, 42



  • Fehler 1 error C2664: 'CreateWindowExW': Konvertierung des Parameters 3 von 'const char [11]' in 'LPCWSTR' nicht möglich c:\mein engine\neo-engine\programmskelett.cpp 40



  • Probier mal

    CreateWindow(Win.lpszClassName, TEXT("Neo-Engine"), WS_TILED,
     CW_USEDEFAULT, CW_USEDEFAULT, MaxWidth,
      MaxHeight, NULL, NULL, hInstance, NULL);
    

    vllt hast du ja UNICODE eingestellt.
    IDE Visual C++ 2008 ?

    Mfg Anon



  • Übrigens LPCWSTR steht für "LongPointerToWideString" 😉

    Mfg Anon



  • Hallo,

    Anon schrieb:

    Übrigens LPCWSTR steht für "LongPointerToWideString" 😉

    Mfg Anon

    Ergänzung: "LongPointerToConstWideString" 😉

    MfG,

    Probe-Nutzer


Anmelden zum Antworten