Hallo,ich arbeite mich gerade in die Abgründe
von Windows ein und würde mich sehr freuen
wenn mir jemand sagen kan was ich beim
erstellen eines einfachen Windows Fenster falsch
mache.Als Hinweis: Ich nutze die AUtorenversion
von C++(V6.0) und das DirectX 9 SDK.Hier nun
mein Ansatzcode.Witzig an der Sache ist,das die
Syntax 100% stimmt ich aber scheinbar einen
logischen Fehler mache:
Alles anzeigen
Beim komplilieren und erstellen gibt es kein problem.Aber wenn cih es starte bekomme ich die von mir erstelle Fehlermeldung "Fenster konnte nicht erzeugt werden" dies geht ja aus der abfrage von "hWnd == 0" hervor.Ich finde aber keinen ersichtlichen Grund warum den '0' und nicht der Wert des erzeugten Fenster zurückgegeben wird....
Also wenn jemand sich das mal ansehen könnte,und mir sagen könnte was ich falsch mache wäre ich demjenigen sehr dankbar^^
Danke im vorraus
MfG Ska
EDIT: Ich hoffe man kann den Code lesen,die Forensoftware verwurschtelt das ziemlich oO
von Windows ein und würde mich sehr freuen
wenn mir jemand sagen kan was ich beim
erstellen eines einfachen Windows Fenster falsch
mache.Als Hinweis: Ich nutze die AUtorenversion
von C++(V6.0) und das DirectX 9 SDK.Hier nun
mein Ansatzcode.Witzig an der Sache ist,das die
Syntax 100% stimmt ich aber scheinbar einen
logischen Fehler mache:
Quellcode
- #include <iostream.h>
- #include <string.h>
- #include <stdio.h>
- #include <windows.h>
- HWND CreateMainWindow(HINSTANCE hInstance);
- LRESULT CALLBACK MessageHandler(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
- HWND hWnd = 0; //globale Variable Fenster-Handle
- int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
- {
- //Fenster erzeugen und Handle speichern
- hWnd = CreateMainWindow(hInstance);
- if(hWnd == 0)
- {
- MessageBox(0,"Das Fenster konnte nicht erzeugt werden","Fehler",MB_OK |
- MB_ICONEXCLAMATION);
- return 0;
- }
- //Strucktur, in der Informationen zur Nachricht gespeichert werden
- MSG msg;
- //Die Schleife läuft bis die Nachricht WM_QUIT empfangen wird
- while(GetMessage(&msg,NULL,0,0))
- {
- //Nachricht an die Calbackfunktion senden
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- //Rückgabewert an Windows
- return 0;
- }
- LRESULT CALLBACK MessageHandler(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
- {
- //testet um welche Nachricht es sich handelt
- switch(msg)
- {
- //wenn das Fenster geschlossen wird, wird
- //WM_QUIT gesendet, umj das Programm zu beenden
- case WM_DESTROY:
- PostQuitMessage(0)
- return 0;
- break;
- }
- return (DefWindowProc(hWnd,msg,wParam,lParam));
- }
- HWND CreateMainWindow(HINSTANCE hInstance)
- {
- WNDCLASSEX wndClass = {
- sizeof(WNDCLASSEX), //Angabe der Größe
- CS_DBLCLKS | CS_OWNDC | //Angabe der verwendeten Stile zum
- CS_HREDRAW | CS_VREDRAW, //Darstellen des Fensters
- MessageHandler, //Callback-Funktion
- 0, //NULL
- 0, //NULL
- hInstance,
- LoadIcon(NULL,IDI_WINLOGO),
- LoadCursor(NULL,IDC_ARROW),
- (HBRUSH)GetStockObject(WHITE_BRUSH),
- NULL,
- "Windows Class"
- LoadIcon(NULL, IDI_WINLOGO)
- };
- return CreateWindowEx(NULL,"WindowClass","Ein einfaches Fenster",
- WS_OVERLAPPEDWINDOW | WS_VISIBLE,
- 0,0,400,300,NULL,NULL,hInstance,NULL);
- }
Beim komplilieren und erstellen gibt es kein problem.Aber wenn cih es starte bekomme ich die von mir erstelle Fehlermeldung "Fenster konnte nicht erzeugt werden" dies geht ja aus der abfrage von "hWnd == 0" hervor.Ich finde aber keinen ersichtlichen Grund warum den '0' und nicht der Wert des erzeugten Fenster zurückgegeben wird....
Also wenn jemand sich das mal ansehen könnte,und mir sagen könnte was ich falsch mache wäre ich demjenigen sehr dankbar^^
Danke im vorraus
MfG Ska
EDIT: Ich hoffe man kann den Code lesen,die Forensoftware verwurschtelt das ziemlich oO
"A Programmer is just a tool which converts cofein into code!"
(anonymer Verfasser)
[Blockierte Grafik: http://www.beepworld.de/memberdateien/members98/skabus/sigc.jpg]
(anonymer Verfasser)
[Blockierte Grafik: http://www.beepworld.de/memberdateien/members98/skabus/sigc.jpg]