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
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
// C++ // Listing // Windows // #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 Fenstereigenschafen HWND hWnd; // Fenster-Handle MSG message; // Nachricht // Der Klassenname des Fensters ist frei wählbar const char szClassName[] = "Erstes Fenster"; // Struktur mit gewünschten Eigenschaften füllen // // Größe der Struktur zwischen speichern // 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, "Das erste Fenster!", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 300, 250, NULL, NULL, hInst, NULL); // Prüfen ob alles glatt ging if (hWnd == NULL) return 0; // Messages while (GetMessage (&message, NULL, 0, 0)) { TranslateMessage (&message); DispatchMessage (&message); } // Programm beenden return (int) (message.wParam); } // WinMain // Callback-Funktion zur Nachrichten bearbeitung // LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { // Message auswerten switch (message) { // Fenster schließen? case WM_DESTROY: { // Nachricht zum beenden schicken PostQuitMessage (0); return (0); } // Wurde eine Taste gedrückt? case WM_KEYDOWN: { // Ja, also nach Taste verzweigen switch (wParam) { // Wurde ESCAPE gedrückt case VK_ESCAPE: { // Ja, also Nachricht zum beenden schicken PostQuitMessage (0); return (0); } } } break; } // Nachrichten von Windows verarbeiten lassen return (DefWindowProc (hWnd, message, wParam, lParam)); } // WindowProc |
Zitat
------ Erstellen gestartet: Projekt: window, Konfiguration: Debug Win32 ------
Kompilieren...
window.cpp
main.cpp
.\main.cpp(121) : fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?
Code wird generiert...
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\root\Eigene Dateien\Visual Studio 2005\Projects\window\window\Debug\BuildLog.htm" gespeichert.
window - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Zitat
------ Erstellen gestartet: Projekt: window, Konfiguration: Debug Win32 ------
Kompilieren...
window.cpp
main.cpp
.\main.cpp(13) : error C2373: 'WinMain': Neudefinition; unterschiedliche Modifizierer
C:\Programme\Microsoft Platform SDK\Include\winbase.h(1875): Siehe Deklaration von 'WinMain'
.\main.cpp(32) : error C2440: '=': 'LRESULT (__clrcall *)(HWND,UINT,WPARAM,LPARAM)' kann nicht in 'WNDPROC' konvertiert werden
Die Adresse einer Funktion liefert die __clrcall-Aufrufkonvention in /clr:pure und /clr:safe. Verwenden Sie evtl. __clrcall im Zieltyp.
.\main.cpp(53) : error C2440: '=': 'const char [15]' 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.
.\main.cpp(69) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [15]' 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.
.\main.cpp( : error C3641: "WindowProc": Ungültige Aufrufkonvention "__stdcall " für eine Funktion, die mit /clr:pure oder /clr:safe kompiliert wurde.
AssemblyInfo.cpp
Code wird generiert...
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\root\Eigene Dateien\Visual Studio 2005\Projects\window\window\Debug\BuildLog.htm" gespeichert.
window - 5 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Zitat von »"Faule Socke"«
koschka:
ich glaube er hat das win32 projekt noch net freigeschaltet. oO
Das muss man bei der express ja machen, indem man irgend so ne datei bearbeitet.
Socke
Werbeanzeige