Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Simple Fenstererstellung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
15.11.2005, 18:14 Uhr
~fragemaster
Gast


Ich habe bis jetzt folgenden code für ein simples leeres Fenster.
Ich habe das das ganze von www.win-api.de.
Bei mir erscheint kein Fenster.
Ich habe aber alles 3 mal durchgearbeitet.
Wo liegt der Fehler????



C++:
//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------
#define STRICT
#include <windows.h>
#pragma argsused
const char szAppName[] = "Ein eigenes Fenster";
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int main(int argc, char* argv[])
{
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
   HWND       hWnd;
   MSG        msg;
   WNDCLASS   wc;
   wc.style         =  CS_HREDRAW | CS_VREDRAW;
   wc.lpfnWndProc   =  WndProc;
   wc.cbClsExtra    =  0;
   wc.cbWndExtra    =  0;
   wc.hInstance     =  hInstance;
   wc.hCursor       =  LoadCursor(NULL,IDC_ARROW);
   wc.hIcon         =  LoadIcon(NULL,IDI_APPLICATION);
   wc.hbrBackground =  (HBRUSH)GetStockObject(WHITE_BRUSH);
   wc.lpszClassName =  szAppName;
   wc.lpszMenuName  =  NULL;
   RegisterClass(&wc);
//----------------------------------------------------------------------------
   hWnd = CreateWindow(szAppName,
                       "Titelleiste",
                       WS_OVERLAPPEDWINDOW,
                       CW_USEDEFAULT,          /* X-Position auf dem Monitor */
                       CW_USEDEFAULT,          /* Y-Position auf dem Monitor */
                       CW_USEDEFAULT,          /* Fensterbreite              */
                       CW_USEDEFAULT,          /* Fensterhoehe               */
                       NULL,
                       NULL,
                       hInstance,
                       NULL);
   ShowWindow(hWnd, iCmdShow);
   UpdateWindow(hWnd);
   while (GetMessage(&msg, NULL, 0, 0))
   {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
   }
   return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        switch (message)
        {
                case WM_DESTROY:
                {
                PostQuitMessage(0);
                return 0;
        }}
return DefWindowProc(hWnd, message, wParam, lParam);
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.11.2005, 19:48 Uhr
Oliver
S2-Pixelgeneral


Mach mal die ganzen #pragmas und das STRICT raus..
Achja und was passiert? Bleibt es stecken, wann beendet es sich, bzw. beendet es sich überhaupt?
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 15.11.2005 um 19:48 Uhr von Oliver editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.11.2005, 20:43 Uhr
~fragemaster
Gast


Also es erscheint kein Fenster.
Es öffnet sich halt die konsole aber beendet sich gleich wieda.
Fenster erscheint nie.
Jo des mit den Pragmas werd ich mal machen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.11.2005, 21:18 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Also das hab ich auch noch net gesehen ein int main() und dann int WinApi WinMain(). Lösche mal alles was zu main() gehört.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 15.11.2005 um 21:20 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.11.2005, 21:41 Uhr
xXx
Devil


hmm ok.. du musst. eine Win32 API Anwendung erstellen... du hast aber eine Konsolenanwengdung erstellt, und da dann den Code von www.win-api.de einfach drangehängt....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.11.2005, 22:16 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.11.2005, 01:18 Uhr
Hans
Library Walker
(Operator)



Zitat von Uwe:
Hallo,


Hi,
dem stimme ich zu, ist wirkilch sensationell. Noch sensationeller finde ich aber, das der Compiler das ohne zu knurren schluckt. Interessant ist dabei, das später nur der main()-Teil ausgeführt wird.
Aber andereseits erkläre ich mir das mit der Logik, bzw. dem System, nach dem Windowsprogramme aufgebaut sind, um das vorgeschaltete STUB-Programm ausführen zu können...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.11.2005, 10:12 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Also ich finde es weder komisch das der Compiler es schluckt noch das es main() ausgeführt wird. Das Programm hat halt mehrere Einstiegspunkte und Windows nimmt halt den ersten den es findet.
Genauso könnte ich ja noch ein DLLMain hinzufügen um das ganze auch als DLL zu übersetzten oder ein ServiceMain um es als Service laufen zu lassen.

Unter C# kann ich z.B. auch mehrere mains machen und beim Starten auswählen welches verwendet werden soll.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.11.2005, 17:58 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
eigentlich war mein "Sensationell" Post ironisch gemeint, da ich im Post zuvor schon darauf aufmerksam gemacht hab, das es an den beiden Main - Functions liegt.
"Also das hab ich auch noch net gesehen..." war ebenfalls "ironisch" gemeint (ich dachte uns will wider mal einer "verarschen")
Klaro schluckt der Compiler das.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.11.2005, 18:21 Uhr
Hans
Library Walker
(Operator)


Hi,
dass das ironisch gemeint war, ist mir schon klar, obwohl mein posting da oben nicht den Eindruck erweckt, wie ich gerade feststellen muss.
Der Rest beschreibt einfach nur, was dabei heraus kam, als ich das Programm ausprobiert habe, und was ich mir dazu gedacht hab. - Muss wohl an der Uhrzeit gelegen haben...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: