JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

auf Funktionen und Klassen zugreifen
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 11:54    Titel: Antworten mit Zitat

Vision hat Folgendes geschrieben:
Was is denn Boot??? Dein Compiler kann ja nich wissen was Boot ist ohne das du es ihm sagst.

@TheMillenium:
Auf die Uhrzeit hab ich gar nich geschaut Wink


ich habe boot aber als DirectDraw Surface im Main.cpp deklariert!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 17:08    Titel: Antworten mit Zitat

heh, du scheinst das buch nciht richtig durchgelesen zu ahben. In jeder cpp datei, muss du die variablen deklarieren.

also bekannt machen und das machst du dann mit

extern datentyp variablename;
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
bladegool
JLI'ler



Anmeldedatum: 26.08.2003
Beiträge: 127
Wohnort: München
Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 17:17    Titel: Antworten mit Zitat

Was heißt eigentlich das extern Question
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 17:28    Titel: Antworten mit Zitat

Wenn du eine Variable mit dem Modifier extern angibst, bedeutet das, dass die Variable existiert, aber in einer anderen Datei definiert wurde.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 18:58    Titel: Antworten mit Zitat

also mit dem extern das habe ich jetzt verstanden, stehe aber vor einem anderen Prob Confused

ich muss ja in der main.cpp
Code:
#include "DirectDrawClass.h"


und in meiner neuen Klasse muss ich die ja auch nochmal includen, dann kommt aber immer folgender Fehler:

Code:
directdrawclass.h(5) : error C2011: 'DirectDrawClass' : 'class'-Typ-Neudefinition
Spielschleife.cpp
Fehler beim Ausführen von cl.exe.


Ich verzweifel langsam, ist das wirklich alles so kompliziert das man auch jede Variable mit Extern angeben muss??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 19:22    Titel: Antworten mit Zitat

Schreib in alle dein Headers "#pragma once" in die erste Zeile.. das verhindert Mehrfachdefinitionen/-deklarationen.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 19:51    Titel: Antworten mit Zitat

Hazel hat Folgendes geschrieben:
Schreib in alle dein Headers "#pragma once" in die erste Zeile.. das verhindert Mehrfachdefinitionen/-deklarationen.

Danke sowas habe ich gesucht! Ihr seid hier echt eine tolle Hilfe! Danke!

Leider habe ich jetzt ein neues Prob. Confused Sad Rolling Eyes

Meine neue Objektklasse:

Code:

#include "DirectDrawClass.h"

extern DirectDrawClass DDrawObjekt;
extern LPDIRECTDRAWSURFACE7 lpDDSurface;
extern LPDIRECTDRAWSURFACE7 Bildsurface;
extern LPDIRECTDRAWSURFACE7 Waffe;
extern LPDIRECTDRAWSURFACE7 Boot;
class Objekt
{
   
   int m_x;
   int m_y;
   int m_i; // Geschwindikeit

   // Typ 1 : Boot

   void Erstellen ()
   {
   if (true)
   {
   m_x = 20;
   m_y = 30;
   m_i = 3;
      
   }
   }


   void Bewegen(void)
   {
      
      m_x = m_x + m_i;
      DDrawObjekt.GetBuffer()->BltFast(m_x,m_y,Boot,NULL,DDBLTFAST_SRCCOLORKEY); 

   }
   };



wenn ich jetzt aber
Code:
Objekt Objekte;
   
   Objekte.Erstellen();

ausführen will oder auch Objekte.Bewegen bekomme ich folgenden Fehler:
Code:
ManagerMain.cpp(134) : error C2248: "Erstellen" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "Objekt" erfolgte
objektklassen.cpp(18) : Siehe Deklaration von 'Erstellen'
ManagerMain.cpp(155) : error C2248: "Bewegen" : Kein Zugriff auf private Element, dessen Deklaration in der Klasse "Objekt" erfolgte
        objektklassen.cpp(32) : Siehe Deklaration von 'Bewegen'
Fehler beim Ausführen von cl.exe.

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


was mache ich dort falsch???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 25.09.2003, 19:52    Titel: Antworten mit Zitat

habe es grade selber rausgefunden, ich habe private und public vergessen Rolling Eyes
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
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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