|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Aschratt Mini JLI'ler
Anmeldedatum: 20.03.2005 Beiträge: 2 Wohnort: Seifersdorf Medaillen: Keine
|
Verfasst am: 20.03.2005, 13:08 Titel: Fenster |
|
|
Tach Leute!
Ich brauch ganz ganz ganz ganz ganz ganz dringend eure Hilfe!
Ich hab in der Windowsprogrammierung grade erst angefangen und hab folgende Probleme, wenn ich eine Funktion zum Erstellen eines Fensters schreiben will:
An dießer stelle treten die meisten Fehler auf:
Code: | HWND CreateMainWindow(HINSTANCE hInstance) |
und zwar:
Code: | c:\programme\microsoft visual studio\myprojects\fenster\fenster_1.cpp(65) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'CreateMainWindow'
c:\programme\microsoft visual studio\myprojects\fenster\fenster_1.cpp(65) : error C2040: 'HWND' : 'struct _WNDCLASSEX' unterscheidet sich von 'struct HWND__ *' in bezug auf die Anzahl vorgenommener Dereferenzierungen
c:\programme\microsoft visual studio\myprojects\fenster\fenster_1.cpp(65) : fatal error C1004: Unerwartetes Dateiende gefunden |
Ich häng euch mal den ganzen Quellcode ran:
CPP: | #include "Windows.h"
typedef struct _WNDCLASSEX {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackround;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
HICON hIconSm;
}
/* Wenn ich das nich als Kommenar setz komm noch mehr Fehler!
HWND CreateWindowEx(
DWORD dwExStyle,
LPCSTR lpClassName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
)
*/
//Hier kommen die Errors
HWND CreateMainWindow(HINSTANCE hInstance)
//////////////////////////////////////////////////////////////////////////////////
{
//Struktur festlegen
WNDCLASSEX wndclass;
//Struktur initialisieren
wndClass.cbSize = sizeof(&WNDCLASSEX);
wndClass.style = CS_DBLCLKS | CSOWNDC | CS_HREDRAW | CSVREDRAW;
//Callback-Funktion
wndClass.lpfnWndProc = MessageHandler;
wndClass.CbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hInstance = hInstance;
//Backrond = Weiß
wndClass.hbrBackround = (HBRUSH)GetStockObject(WHITE_BRUSH);
//Maucursor = Standart
wndClass.hCursor = LoadfCursor(NULL, IDC_ARROW);
// Kein Menü
wndClass.lpszMenuName = NULL;
//Name der Klasse
wndClass.lpszClassName = "WindowClass";
//Icons
wndClass.hIcon = LoadIcon(NULL, IDI_WINLOGO);
wndClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
//Registrieren der Klasse
RegisterClassEx(&wndClass);
//Rückgabewert von CreateWindowEx = Rückgabewert von CreateMainWindow
return CreateWindowEx(
NULL, //Stile
"WindowClass", //Klassenname
"Ein Einfaches Fenster", //Fenstertitel
WS_OVERLPPEDWINDOW | WS_VISIBLE, //Eigenschaften
0, 0, //Anfangsposition
400, 300, //Größe
NULL, //Handle des Elternfensters
NULL, //Handle des Menüs
hInstance, //Anwendungsinstanz
NULL, //nicht benötigt
);
}
LRESULT CALLBACK MessageHandler(HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
//Nachrichtentest
switch(msg)
{
//bei schließen d. Fensters WM_QUIT senden
case WM_DESTROY:
PostQuitMessage(0);
return(0);
break;
}
//Unbearbeitete Nachichten weiterleiten
return (DefWindowProc(hwnd, msg, wParam, lParam));
}
//globale Variable für Fensterhandle
HWND hWnd = 0
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
//Fenster erzeugen und in Handle speichern
hwnd = CreateMainWindow(hInstance);
//return(0) -> FEHLER
if(0 == hWnd)
{
MessageBox(0,"Fenster konnte nicht erzeugt werden",
"Fehler!",MB_OK | MB_ICONEXCLAMATION);
}
//Struktur mit Nachichteninformationen
Msg msg;
//Nachichtenschleife bis WM_QUIT
while(GetMessage(&msg,NULL,0,0))
{
//Nachicht an Callbackfunktion senden
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
} |
BITTE HELFT MIR ICH BIN VERZWEIFELT |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 20.03.2005, 13:19 Titel: |
|
|
Das was du auskommentiert hast hat keinen Funktionsblock {} wenn das beabsichtigt war dann hat es kein ;
allerdings frage ich mich wozu du das gemacht hast, die Funktion brauchst du nicht aufschlüsseln. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 20.03.2005, 13:27 Titel: |
|
|
Äh...wozu definierst du überhaupt _WNDCLASSEX und CreateWindowEx?
Die sind doch soweit ich weiß schon im Windows-Header...
(Falls du das Buch hast, schau dir noch mal den Code im Buch oder auf der CD an ). _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 20.03.2005, 14:43 Titel: |
|
|
Und bitte repariere deine capslock-Taste. _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 20.03.2005, 15:12 Titel: |
|
|
ähme... in der MSDN steht zu "typedef struct" en anderer Aufbau. z.B.
MSDN hat Folgendes geschrieben: | typedef struct mystructtag
{
int i;
float f;
char c;
} mystruct; |
Es steht nach dem Funktionsblock immer ";" - das is eigentlich immer nötig , aber mich wunderts schon oben. Normaler müsste er da en Fehler anzeigen - hat er glaub ich auch. Ich würde dir empfehlen, für solche Zwecke mit nem Zeiger auf die Struktur(oben: "mystuct") zu arbeiten, aber das is Ansichtsache |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 20.03.2005, 15:21 Titel: |
|
|
Hmm...Steht doch da dass ein Semikolon fehlt... _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 20.03.2005, 17:11 Titel: |
|
|
jo, dann eben das was in den Klammern steht Wie nennt man das denn?
Hab mir gedacht, dass das net Funktionsblock heißt, aber bei Methoden wird das auch so genannt; deshalb hab ichs einfach "behauptet" |
|
Nach oben |
|
|
Aschratt Mini JLI'ler
Anmeldedatum: 20.03.2005 Beiträge: 2 Wohnort: Seifersdorf Medaillen: Keine
|
Verfasst am: 03.04.2005, 08:57 Titel: |
|
|
Danke für alle eure Tips!
Ich hab noch mal neu angefangen und einiges ausprobiert probiert und habs am ende doch noch hinbekommen.
Danke!!!!!!! |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 03.04.2005, 09:04 Titel: |
|
|
Auf die Weise ist es eh am besten. Man kapiert am meisten, wenn man sich Sachen selbst erarbeitet _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 03.04.2005, 14:33 Titel: |
|
|
Was hast du denn gegen die Smilies
Ich mag vor allem und
Des weiteren finde ich , und ganz .
Aber ich fürchte das hier ist schon wieder Spam Nein, die Mods werden hoffentlich meinen Post doch nicht löschen Das wäre echt .Aber das würde ich mir net bieten lassen
[Edit by Mod] [/Edit] _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 03.04.2005, 15:42 Titel: |
|
|
DirectXer hat Folgendes geschrieben: | jo, dann eben das was in den Klammern steht Wie nennt man das denn? |
Parameterliste _________________ Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 03.04.2005, 15:45 Titel: |
|
|
Hehe, in Info ham wir gelernt dass es Aktuelle und Formale Parameter gibt.
Ja Kinder das ist wichtig und wenn ihr das nicht wisst landet ihr in der Gosse. _________________ "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz." |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|