Du bist nicht angemeldet.

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

Anonymous

unregistriert

1

07.11.2005, 19:02

shell code funktioniert nicht

Warum funktioniert der code nicht

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
#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
   static TCHAR szAppName[] = TEXT ("Klassenname");
   HWND         hwnd;
   MSG          msg;
   WNDCLASSEX   wndclassex = {0};
   wndclassex.cbSize        = sizeof(WNDCLASSEX);
   wndclassex.style         = CS_HREDRAW | CS_VREDRAW;
   wndclassex.lpfnWndProc   = WndProc;
   wndclassex.cbClsExtra    = 0;
   wndclassex.cbWndExtra    = 0;
   wndclassex.hInstance     = hInstance;
   wndclassex.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
   wndclassex.hCursor       = LoadCursor (NULL, IDC_ARROW);
   wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
   wndclassex.lpszMenuName  = NULL;
   wndclassex.lpszClassName = szAppName;
   wndclassex.hIconSm       = wndclassex.hIcon;
   if (!RegisterClassEx (&wndclassex))
   {
      MessageBox (NULL, TEXT ("RegisterClassEx fehlgeschlagen!"),
                  szAppName, MB_ICONERROR);
      return 0;
   }
   hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW, // erweiterter Fensterstil

                  szAppName, // Name der Fensterklasse

                  TEXT ("Fenstertitel"), // Fenstertitel

                  WS_OVERLAPPEDWINDOW, // Fensterstil

                  CW_USEDEFAULT, // X-Position des Fensters                      

                  CW_USEDEFAULT, // Y-Position des Fensters       

                  CW_USEDEFAULT, // Fensterbreite                 

                  CW_USEDEFAULT, // Fensterhöhe                

                  NULL, // übergeordnetes Fenster

                  NULL, // Menü           

                  hInstance, // Programm-Kopiezähler (Programm-ID)            

                  NULL); // zusätzliche Parameter

   ShowWindow (hwnd, iCmdShow);
   UpdateWindow (hwnd);
   while (GetMessage (&msg, NULL, 0, 0))
   {
      TranslateMessage (&msg);
      DispatchMessage (&msg);
   }
   return msg.wParam;
}
// Die Hauptnachrichtenschleife

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   HDC hdc;
   PAINTSTRUCT ps;
   switch (message)
   {
   case WM_CREATE:
      return (0);
   case WM_PAINT:
      hdc = BeginPaint (hwnd, &ps);
      TextOut (hdc, 0, 0, "Hallo, ich bin ein Fenster!", 27);
      EndPaint (hwnd, &ps);
      return (0);
   case WM_DESTROY:
      PostQuitMessage (0);
      return (0);
   }
   return DefWindowProc (hwnd, message, wParam, lParam);
}

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

07.11.2005, 19:17

C-/C++-Quelltext

1
2
3
4
5
 while (GetMessage (&msg, NULL, 0, 0)) 
   { 
      TranslateMessage (&msg); 
      DispatchMessage (&msg); 
   }

der arbeitet einmal alle nachrichten ab und verlässt dann das Programm.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    while(!bQuit)
    {
        start= timeGetTime();
        // Nachrichten verarbeiten

        while(PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
        {

            TranslateMessage(&Message);
            DispatchMessage(&Message);

            if(Message.message == WM_QUIT || Message.message == WM_DESTROY )
            {
                // Schleife verlassen!

                bQuit = TRUE;
            }
        }
}
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

3

07.11.2005, 20:19

Nein Nox, der Code stimmt schon so. Ausser das return 0..... bitte ersetzen durch break.

Bei mir funktionierts korrekt, weche Fehler gibts den?

Im übrigen hat das ncihts mit einer Shell zu tun.

Anonymous

unregistriert

4

07.11.2005, 20:27

Nox
Du enttäuschst mich ;) Aber richtig.

aber bitte mit rama
www.winapi.de << gutes tutorial

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

07.11.2005, 20:41

Nox ist wahrscheinlich einfach zu müde ^^ heute noch keinen Kaffee ?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

07.11.2005, 21:03

Ups...das kommt davon wenn man das ganze WE davon ausgeht das man den Schlaf ihrgendwo wieder nachholen wird und dann überrast ist das man schon zur 0. Stunde los muss...
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

7

07.11.2005, 21:06

Nox
Kaffee ersetzt keinen guten Schlaf ;) Vorallem wenn ein schönes Mädchen sich unter einer warmen Bettdecke angekuschelt hat :D

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

07.11.2005, 21:13

Naja da möchte ich jemanden zitieren:

Zitat

Im übrigen..die besten Grafiker und Sounder nemmen die Mädels mit heim. Aber nicht die Coder

:P :roll:
P.S: trinke keinen Kaffee
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Anonymous

unregistriert

9

07.11.2005, 21:20

Nox
Weiß zwar net wer das gesagt habt, aber bei mir trifft das irgendwie nicht zu ;)

Anonymous

unregistriert

10

08.11.2005, 19:09

emporäre Dateien und Ausgabedateien für "w - Win32 Debug" werden gelöscht.
--------------------Konfiguration: w - Win32 Debug--------------------
Kompilierung läuft...
w.cpp
Linker-Vorgang läuft...
LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/w.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

w.exe - 2 Fehler, 0 Warnung(en)

Werbeanzeige