JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6feca37c9e3d8f29e886ed4cb4cdc9fbMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

compilerfehler in directxclass

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
SuiSa
Mini JLI'ler



Anmeldedatum: 21.09.2005
Beiträge: 4

Medaillen: Keine

BeitragVerfasst am: 22.09.2005, 11:48    Titel: compilerfehler in directxclass Antworten mit Zitat

so, ich hab noch ein paar dumme fragen. und ich dachte mir, damit ich das forum nicht für jede frage mit nem neuen thema zumülle, pack ich einfach alles in einen thread.

ich hab inzwischen versucht die directx-klasse nachzubasteln. leider kommen da immer noch fehlermeldungen, obwohl ich mich ganz eng ans buch gehalten hab. kann sein, dass es wieder nur son dummer tippfehler is, aber wenn dem so is, dann find ich ihn einfach nicht. vllt findet ihn ja einer von euch.

hier ist die directxgraphics.cpp:

CPP:
#include "Direct3DClass.h"

// Anwendungsgfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);

// Callback-Funktion zur Nachrichtenbehandlung
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

// globale Variable für das Fenster-Handle
HWND hWnd = 0;

// Instanz der Klasse CDirect3D
CDirect3D Direct3D;

// Main-Funktion
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
   // Fenster erzeugen und Handle speichern
   hWnd = CreateMainWindow(hInstance);

   // Wenn der Rückgabewert 0 ist, ist ein Fehler aufgetreten
   if(0 == hWnd)
   {
      MessageBox(0,"Fenster konnte nicht erzeugt werden","Fehler",MB_OK);
      return -1;
   }

   if(!Direct3D.Init(hWnd))
   {
      // Fehler beim Initialisieren von D3D
      return -1;
   }
   
   // Farbe die beim Löschen verwendet werden soll
    Direct3D.SetClearColor(D3DCOLOR_XRGB(0,0,0xFF));

   // In dieser Struktur werden Nachrichteninformationen gespeichert
   MSG msg;

   // Diese Schleife läuft so lange, bis die Nachricht WM_QUIT
   // empfangen wird

   while(GetMessage(&msg,NULL,0,0))
   {
      // Nachricht an die Callback-funktion senden
      TranslateMessage(&msg);
      DispatchMessage(&msg);
   }

   // Rückgabewert an Windows
   return 0;
}
   
// Fenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance)
{
   WNDCLASSEX wndClass = {
      sizeof(WNDCLASSEX),               // Größe angeben
      CS_DBLCLKS | CS_OWNDC |            // Standardstile
      CS_HREDRAW | CS_VREDRAW,
      MessageHandler,                  // Callback-Funktion
      0,                           // Zusätzliche Angaben
      0,                           // nicht benötigt
      hInstance,                     // Anwendungsinstanz
      LoadIcon(NULL, IDI_WINLOGO),      // Windows-Logo
      LoadCursor(NULL, IDC_ARROW),      // Normaler Cursor
      (HBRUSH)GetStockObject(WHITE_BRUSH),// Weisser Pinsel
      NULL,                        // kein Menü
      "WindowClass",                  // Der Name der Klasse
      LoadIcon(NULL, IDI_WINLOGO)         // Windows-Logo
   };

   // Fensterklasse registrieren, damit sie von
   // CreateWindowEx() verwendet werden kann
   RegisterClassEx(&wndClass);

   // Der Rückgabewert von CreateWindowEx() ist auch der
   // Rückgabewert der Funktion
   return CreateWindowEx(
               NULL,               // Ohne erweiterte Stile
               "WindowClass",         // Klassenname
               "DirectXGraphics",      // Fenstertitel
               WS_OVERLAPPEDWINDOW |   // Fenster
               WS_VISIBLE,            // Eigenschaften
               0, 0,               // Anfangsposition
               SCR_WIDTH, SCR_HEIGHT,   // Größe
               NULL,               // Handle des Elternfensters
               NULL,               // Handle des Menüs
               hInstance,            // Anwendungsinstanz
               NULL);               // nicht benötigt
}

// Diese Funktion wird von Windows aufgerufen, wenn eine Nachricht für das Programm vorliegt

LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
   // Farbe für die Füllung des BackBuffers und den Text festlegen
   D3DCOLOR ClearColor = D3DCOLOR_XRGB(0,0,0xFF);
   
   // testen, um welche Nachricht es sich handelt
   switch(msg)
   {
      // wenn das Fenster geschlossen wird, wird WM_QUIT gesendet,
      // um das Programm zu beenden
   case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
         break;
   
   case WM_KEYDOWN:
            switch(wParam)
            {
               // Wenn ESC gedrückt, Anwendung beenden
            case VK_ESCAPE:
                  DestroyWindow(hWnd);
               break;
            }
         break;

            case WM_PAINT:
               
               Direct3D.BeginScene();

               Direct3D.DrawText("Hallo Direct3D",100,100,D3DCOLOR_XRGB(0xFF,0,0));

               Direct3D.EndScene();

            break;
   }

   // Wenn wir uns nicht um die Nachricht gekümmert haben,
   // wird sie an die Standardnachrichtenverarbeitung von
   // Windows weitergeleitet

   return (DefWindowProc(hwnd, msg, wParam, lParam));
}

und hier die fehlermeldungen:
Code:

Kompilierung läuft...
DirectXGraphics.cpp
S:\Projekte\DirectXGraphics\DirectXGraphics.cpp(87) : error C2143: Syntaxfehler : Fehlendes ')' vor ';'
S:\Projekte\DirectXGraphics\DirectXGraphics.cpp(87) : error C2660: 'CreateWindowExA' : Funktion akzeptiert keine 7 Parameter
S:\Projekte\DirectXGraphics\DirectXGraphics.cpp(87) : error C2143: Syntaxfehler : Fehlendes ';' vor ','
S:\Projekte\DirectXGraphics\DirectXGraphics.cpp(87) : error C2143: Syntaxfehler : Fehlendes ';' vor ','
S:\Projekte\DirectXGraphics\DirectXGraphics.cpp(91) : error C2059: Syntaxfehler : ')'
Fehler beim Ausführen von cl.exe.

DirectXGraphics.exe - 5 Fehler, 0 Warnung(en)


(sry für die dumme formatierung, ich hoffe man kanns lesen Smile )

btw: was macht die funktion ZeroMemory? da man ne adresse einer struktur und deren größe angibt, vernute ich, dass damit irgendwie speicherplatz zur verfügung gestellt wird. lieg ich da richtig?

[EDIT by AFE-GmdG]


Zuletzt bearbeitet von SuiSa am 01.10.2005, 11:40, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 22.09.2005, 12:13    Titel: Re: SuiSas Dumme-Fragen-Thread Antworten mit Zitat

SuiSa hat Folgendes geschrieben:
btw: was macht die funktion ZeroMemory? da man ne adresse einer struktur und deren größe angibt, vernute ich, dass damit irgendwie speicherplatz zur verfügung gestellt wird. lieg ich da richtig?


Patrick hat Recht, bitte editiere deinen Post und nutze bitte
CPP:
[cpp][/cpp]
tags, dann kann man das auch lesen. Ansonsten resverivert ZeroMemory keinen Speicher sondern setzt den Speicher ab der übergebenen Adresse auf 0. Der zweite Parameter legt dabei fest wieviele Bytes aber der Adresse auf 0 gesetzt werden.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 22.09.2005, 14:39    Titel: Antworten mit Zitat

und bitte bitte kein so dämlichen Namen. Wenns den wenigstens "Compilerfehler bei DirectX Klasse" wäre, aber sowas???
ZeroMemory sollte auch im Buch stehen, wahrscheinlich haste das irgendwo überlesen.
Und die Fehler sollten nun wirklich leicht zu lösen sein, wie man sieht haste zum Beispiel die Funktion falsch aufgerufen und Klammern vergessen also nix wildes.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 22.09.2005, 17:37    Titel: Antworten mit Zitat

Mal ehrlich, also sorry wenn ich das sage, aber das ist nun echt lächerlich:
Dein Compiler sagt Dir folgendes:
S:\Projekte\DirectXGraphics\DirectXGraphics.cpp(87) : error C2660: 'CreateWindowExA' : Funktion akzeptiert keine 7 Parameter

Darin steht:
1. Die Datei wo der Fehler ist
2. Die Zeile wo der Fehler ist
3. Der Fehler ID-Code
4. Welche Funktion betroffen ist
5. Was nicht korrekt ist.

Denk 5cm voraus und du weißt was du zu tun hast. Achja: Solche "Dumme Fragen Thread"-Titel hasse ich. Schreib doch wenigstens "Fehlerausgabe beim Compilieren, komme nicht weiter"

Aber sowas? Jesus...
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 22.09.2005, 19:17    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
Mal ehrlich, also sorry wenn ich das sage, aber das ist nun echt lächerlich:
Dein Compiler sagt Dir folgendes:
S:\Projekte\DirectXGraphics\DirectXGraphics.cpp(87) : error C2660: 'CreateWindowExA' : Funktion akzeptiert keine 7 Parameter

um ehrlich zu sein (ich geh mal davon aus, dass Zeile 87 der aufruf von CreateWindowEx ist) sehe ich da den fehler auf anhieb nicht. er übergibt keine 7 parameter, und ich finde auf anhieb auch keine groben syntax fehler, die den compiler zu solch einer aussage bringen könnten.

PS: Jeder macht mal fehler, aber muss man dann als anfänger direkt 4 standpauken auf einmal bekommen? Ich finde das ehrlich gesagt ziemlich abschreckend.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Blubb-Tec
JLI'ler


Alter: 33
Anmeldedatum: 29.03.2005
Beiträge: 171
Wohnort: Düsseldorf
Medaillen: Keine

BeitragVerfasst am: 23.09.2005, 11:55    Titel: Antworten mit Zitat

mhh... also ich wollte sie nich anmeckern, nur mit syntax-highlighting sieht's gleich vieeel schöner aus Very Happy
mmhmh... vll ne alte windows.h version, bei der die Funktion keine 7 parameter aktzeptierst?
_________________
www.planlos.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 23.09.2005, 14:05    Titel: Antworten mit Zitat

Er übergibt genau 12 parameter, und wenn ich das gerade richtig vergleiche sollten die alle am richtigen ort sein.

das sieht mir nach einem unsichtbares-symbol-welches-der-compiler-nicht-kennt fehler aus.

SuiSa:
versuche doch einfach mal den funktionsaufruf, dort wo der fehelr angezeigt wird komplett selbst neu abzutippen. vielleicht hast du beim kopieren oder so ein zeichen mit kopiert, welches da nicht hin gehört (passiert selten, aber es kommt vor, hatten wir im off topic bereich letztens erst).

- xardias, denn die klügere Zahnbürste gibt nach.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SuiSa
Mini JLI'ler



Anmeldedatum: 21.09.2005
Beiträge: 4

Medaillen: Keine

BeitragVerfasst am: 01.10.2005, 11:50    Titel: Antworten mit Zitat

so, nach einer kleinen frustrationspause bin ich wieder da. hab das thema jetzt umbenannt. danke übrigens xardias, dass du mich verteidigst Smile.

ich möchte nochmal anmerken dass der fehler tatsaechlich nicht so trivial war, hab ihn naemlich inzwischen entdeckt:
ich hab in der global.h die define-anweisungen versehentlich mit nem semikolon abgeschlossen. als ich die entfernt hatte, lief alles.

die fehlermeldungen hab ich uebrigens schon verstanden, es ist ja nich so dass ich sie mir net durchlese, bevor ich hier was poste, ich hab vorher wirklich lang vor dem code gesessen und gegruebelt. aber wie man sieht hat der compiler mich glatt an der falschen stelle suchen lassen. bitte seid nich gleich so fies, ich bin eben echt nochn anfaenger.

aber trotzdem danke fuer die hilfe Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum