You are not logged in.

  • Login

1

Wednesday, July 23rd 2008, 3:19pm

Windows Applikation

Ich frage mich was man machen muss, wenn man eine WindowsApp erstellen will, ohne das hinterher die Konsole geöffnet wir...


Muss man das auch mich cout und so machen?

Danke schonmal im Vorraus...


Könnt ihr mir dann mal auch bitte sagen was an diesem Code Falsch ist???


C/C++ Quellcode

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
#include <windows.h>
 
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
 
/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";
 
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)
 
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */
 
    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);
 
    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
 
    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;
 
    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );
 
    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);
 
    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }
 
    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}
 
 
/*  This function is called by the Windows function DispatchMessage()  */
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
#define STRICT
#include <windows.h>
 
const char  szWitz[] = "\"Ich steh' schwer auf Umweltschutz\", sagt Peter.\n"
                       "\"Ich werfe zum Beispiel alte U-Bahn-Fahrscheine nie weg,\n"
                       "sondern benutze sie mehrmals.\"";
 
                       int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
                     int iAntwort = MessageBox(NULL, szWitz, "Ha, ha, ha, ha...",
                                   MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1);
                                      if (IDOK == iAntwort)
   {
      MessageBox(NULL, "Ja, ich finde den Witz auch Ok...",
                       "Sie haben auf Ok gedrückt",
                       MB_ICONINFORMATION | MB_OK | MB_DEFBUTTON1);
   }  else if (IDCANCEL == iAntwort)
   {
      MessageBox(NULL, "Ja, warum haben sie denn auf Abbrechen gedrückt?\n"
                       "Hat ihnen der Witz etwa nicht gefallen?",
                       "Sie haben auf Abbrechen gedrückt",
                       MB_ICONINFORMATION  | MB_OK | MB_DEFBUTTON1);
   }   return 0;
}

This post has been edited 2 times, last edit by "ehliboy" (Jul 23rd 2008, 7:07pm)


2

Thursday, July 24th 2008, 1:35am

Sag du uns doch lieber was für ein Fehler kommt.
Ansonsten brauchst du keine Konsole im Hintergrund. Zur Zeit scheinst du ja das MFC zu verwenden, verstehe daher die Frage nicht, du hast die Alternative doch bereits gefunden,

3

Thursday, July 24th 2008, 7:41am

Das ganze ist nicht wirklich falsch naja eig. schon :O

du hast da ein tutorial verwendet welches ich auch benutzt habe o.O CONSOLE in NA WIN-API ist sinnlos...

@d0nout ist doch nicht MFC ist sturre WIN-API...

was mich stutzig macht ist der doppel inklude von <windows.h>...

ich glaub du hast da zwei Codes (aus dem TuT) untereinander gehängt,

ps.: du musst bei dem TuT noch die Kompilereinstellung geringfügig ändern :O , g00gle einfach mal nach den Fehler (Linker - Fehler)

Lg, Gregor

PS.: mehr kann ich auch nicht ohne den Error-Meldungen sagen....

4

Friday, July 25th 2008, 8:43am

Hab den Quelltext hier nicht gelesen.

Es gibt einen aktuellen Compiler der an Win-Programm irgendwie noch eine Konsole einblendet,
was sonst alle anderen Compiler bei den gleichen Quelltexten nicht machen. Aber vielleicht
hab ich damals auch nur einen Compiler-Schalter vergessen.

Nein, die freie Version des Compilers ist meist ohne IDE und Projektverwaltung und heisst
auch nicht BCC.

MfG Hainbuche

Social bookmarks