Habe mit Youtube Tutorial ein Window gebastelt. Bekomme aber Anfängerfehler nicht weg.
-
Hallo liebe Gemeinde,
Ich habe Stunden an dem Code verbracht. Aber ich kann die blöden Anfängerfehler nicht finden. Hoffe ihr könnt mir kurz helfen damit ich weiter lernen kann.
Wie füg ich den Code jetzt ein????
So?
[/code]
#include <windows.h>
#include "stdafx.h"
#include <iostream>LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
const char szClassName[] = "MyClassEx";
char szTitle[] = "Media - Box | Copyright Onkel_Jo Production
";int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR szCmdLine, int iCmdShow ) {//================ Registrierung ==================//
WNDCLASSEX WndClassEx;
HWND hWnd;
MSG msg;
UINT umsg;
WPARAM wParam;
LPARAM lParam;WndClassEx.cbSize = sizeof ( WndClassEx );
WndClassEx.style = NULL;
WndClassEx.lpfnWndProc = WndProc;
WndClassEx.cbClsExtra = NULL;
WndClassEx.cbWndExtra = NULL;
WndClassEx.hInstance = hInstance;
WndClassEx.hIcon = NULL;
WndClassEx.hIconSm = NULL;
WndClassEx.hCursor = NULL;
WndClassEx.hbrBackground = ( HBRUSH ) ( COLOR_BACKGROUND +1 );
WndClassEx.lpszMenuName = NULL;
WndClassEx.lpszClassName = szClassName;if( !RegisterClassEx( &WndClassEx ) ) {
MessageBox( NULL, "Register Class failed.", "Error", MB_OK );
return false;
}//================ Fenster Erstellen ==================//
hWnd = CreateWindowEx ( WS_EX_CLIENTEDGE,
szClassName,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL );if ( hWnd == NULL ) {
MessageBox( NULL, "Create Window failed.", "Error", MB_OK );
}ShowWindow( hWnd, iCmdShow );
while( GetMessage ( &msg, hWnd, NULL, NULL ) > NULL ) {
TranslateMessage( &msg );
DispatchMessage( &msg );}
return 0;
LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) {
switch( msg ) {
case WM_QUIT:
{
MessageBox( NULL, "Programm wurde beendet",
"Programm Ende", MB_OK );
DestroyWindow( hWnd );
}
break;case WM_DESTROY:
PostQuitMessage (0);
break;
default :
return DefWindowProcA( hWnd, msg, wParam, lParam );}
}
Sorry!

-
Onkel_Jo schrieb:
Wie füg ich den Code jetzt ein????
Auf den C++ Button klicken? ...
1. YouTube Tutorial? O_o Lies lieber was auf MSDN oder klau dir irgendwo das Standardwerk zur WinAPI: Programming Windows von Charles Petzold.
2. Wie sollen wir dir helfen wenn du uns nicht mal sagst wo dein Problem ist? Gibst du dein Auto auch in die Werkstatt mit der Aussage "das hat nen Fehler"?
3. Das hat mit Standard-C++ nichts zu tun, dafür gibt's hier das WinAPI Forum.
-
1. Ich würde sagen das es kaputt ist. Wenn meine Auto stehen bleibt, schraub ich ja nicht dran rum bis ich der Werkstatt sagen kann, teil xy ist kaputt.

2. Wenn jeder auf Bücher verwiesen wird, warum dann ein Forum???
3. Entweder versuchst du mir kurz zu helfen oder lass deine Unfreundlichkeit bei dir zuhause!

4. Sorry vergessen. War mein 3 Beitrag überhaupt!
Ja das Tutorial lief ja über MSDN.
Der Fehler ist:
1>------ Erstellen gestartet: Projekt: ww, Konfiguration: Debug Win32 ------
1>Der Buildvorgang wurde am 05.01.2013 00:10:57 gestartet.
1>InitializeBuildStatus:
1> Aktualisieren des Timestamps von "Debug\ww.unsuccessfulbuild".
1>ClCompile:
1> Alle Ausgaben sind aktuell.
1> Main.cpp
1>c:\users\gamer_000\documents\visual studio 2010\projects\ww\ww\main.cpp(88): error C2601: 'WndProc': Lokale Funktionsdefinitionen sind unzulässig
1> c:\users\gamer_000\documents\visual studio 2010\projects\ww\ww\main.cpp(13): Diese Zeile enthält eine '{', die keine Entsprechung hat
1>c:\users\gamer_000\documents\visual studio 2010\projects\ww\ww\main.cpp(114): fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "c:\users\gamer_000\documents\visual studio 2010\projects\ww\ww\main.cpp(13)" gefunden wurde
1>
1>Fehler beim Erstellen
1>
1>Verstrichene Zeit 00:00:01.09
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Nach return 0; fehlt eine geschweifte Klammer, nach return DefWindowProcA( hWnd, msg, wParam, lParam ); ist eine zu viel. Das sollte dir aber selbst auffallen. Ich rate dazu erstmal so Programmieren zu lernen (ohne WinAPI Kram), dann hast du nicht zwei Baustellen auf einmal.
-
Am Ende der WinMain-Funktion fehlt die schließende Klammer.
-
Danke. Klappt doch. Mehr wollte ich doch garnicht.
Tausend Dank

-
Ok habe es selbst gelöst.
1. Alle Syntaxfehler ausmerzen. (großer Dank an Bashar & cooky451)

2. Die msg im Switch müssen einfach in umsg gändert werden.

Und siehe da Window öffnet sich ohne Fehler und wie gewollt.
Kann geschlossen werden.
-
...