Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 24.09.2003, 13:52 Titel: auf Funktionen und Klassen zugreifen |
|
|
Hallo Leute,
ich bin grade in Kapitel 19 des Buches.
Wie kann ich in anderen FUnktionen und Quellcodedateien z.B. auf die Funktion Render(); zugreifen oder auf Klassen wie das DDraw Objekt??
Danke im Vorraus |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 24.09.2003, 14:04 Titel: |
|
|
Auf Objekte von Klassen kannst du so zugreifen:
main.cpp
DDraw.h<-- Deine DDraw-Klasse
Code: | //Nach der definition der Klasse
extern DDraw DDrawObjekt; |
Jetzt musst du in den Dateien in denen du dein DDraw-Objekt brauchst nur noch DDraw.h includen und dann kannst du ganz normal drauf zugreifen:
|
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 24.09.2003, 14:04 Titel: |
|
|
einfach so:
main.cpp
int zahl;
in einer anderen datei.cpp
extern int zahl; _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 24.09.2003, 14:06 Titel: |
|
|
Hab ich doch oben schon geschrieben  |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 24.09.2003, 14:29 Titel: |
|
|
Wenn du sehen würdest, haben wir beide das um 13:04 gepostet. Also zeitgleich. Du wirst das wohl nur ein paar Sekundne schneller abgeschickt haben... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 24.09.2003, 15:01 Titel: |
|
|
ich bekomme dann immer folgenden Fehler:
Code: | directdrawclass.h(36) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'DDrawObjekt'
directdrawclass.h(36) : fatal error C1004: Unerwartetes Dateiende gefunden
|
meine DirectDrawClass.h sieht jetzt so aus:
Code: | #include <ddraw.h>
class DirectDrawClass
{
public:
DirectDrawClass(void);
~DirectDrawClass();
BOOL Init(HWND hWnd);
// Hintergrund löschen
void Clear(int Color);
void Flip(void);
// Zeiger auf den Hintergrundpufferzurückgeben, damit andere Objekte zeichnen können
LPDIRECTDRAWSURFACE7 GetBuffer(void) { return lpDDSBackBuffer; }
// Funktion um eine Oberfläche anzulegen, als Grundlage dient eine Bitmap-Datei
LPDIRECTDRAWSURFACE7 CreateSurfaceFromBitmap(LPCTSTR File, int dWidth, int dHeight);
private:
// Zeiger auf das DirectDraw Interface
LPDIRECTDRAW7 lpDD7;
// Zeiger auf die primäre Oberfläche
LPDIRECTDRAWSURFACE7 lpDDSPrimary;
// Zeiger auf den Hintergrundpuffer
LPDIRECTDRAWSURFACE7 lpDDSBackBuffer;
extern DDrawObjekt DDrawObjekt;
};
|
|
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 24.09.2003, 15:08 Titel: |
|
|
Also ich weiß nicht, ob man extern auch lokal definieren kann, schon gar private (?), aber probiers mal, indem du dein "extern" Global (also ueber alle Definitionen unter den Includes) in deiner CPP-Datei definierst wo du's brauchst?
Siehe noch mal Milleniums Post oben "Datei.CPP"...  |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 24.09.2003, 19:20 Titel: |
|
|
nee das funktioniert auch nicht... |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 24.09.2003, 20:52 Titel: |
|
|
ich glaub da sollte mal einer so schlau sein und auch in der anderen cpp datei erstmal den datentyp bekannt machen... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 24.09.2003, 21:07 Titel: |
|
|
TheMillenium hat Folgendes geschrieben: | ich glaub da sollte mal einer so schlau sein und auch in der anderen cpp datei erstmal den datentyp bekannt machen... |
wie darf man das jetzt verstehen?? was habe ich falsch gemacht? |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 24.09.2003, 21:53 Titel: |
|
|
_________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 24.09.2003, 22:22 Titel: |
|
|
Hmmm ich denke was Millenium dir mit seiner Minimalistischen Art sagen will (ned boese nehmen Millenium ), ist dass du deine DDrwaObjekt includieren solltest, damit dein extern weiß, was du haben willst.
Oder??  |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 25.09.2003, 06:25 Titel: |
|
|
ja genau.
main.cpp
#include "ddrawclass.h"
ddrawclass eineKlasse;
ander datei.cpp
#include "ddrawclass.h"
extern ddrawclass eineKlasse; _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 25.09.2003, 11:52 Titel: |
|
|
Danke erstmal für eure Hilfe!
ich hab das jetzt so gemacht wie ihr es gesagt habt, meine neue Objektklasse (noch ganz am Anfang) sieht so aus:
Code: | #include "DirectDrawClass.h"
#include "variablen.h"
extern DirectDrawClass DDrawObjekt;
class Objekt
{
int x;
int y;
int i; // Geschwindikeit
// Typ 1 : Boot
void Erstellen (int Typ)
{
if (Typ == 1)
{
}
}
void Bewegen(void)
{
x = x + i;
DDrawObjekt.GetBuffer()->BltFast(x,y,Boot,NULL,DDBLTFAST_SRCCOLORKEY);
}
|
ich bekomme jetzt aber immer nur noch Fehlermeldunge z.B. mit dem Surface "boot" was ich im Hauptteil (main.cpp) deklariert habe...
Code: | error C2065: 'Boot' : nichtdeklarierter Bezeichner |
was muss ich tun damit ich alles aus dem Hauptteil verwenden kann? |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 25.09.2003, 12:46 Titel: |
|
|
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  |
|
Nach oben |
|
 |
|