JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Funktion aus Klasse aufrufen (HILFE)

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
blackhunter
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 35
Wohnort: Herzberg am Harz
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 15:21    Titel: Funktion aus Klasse aufrufen (HILFE) Antworten mit Zitat

Also ich will in meinem Projekt in einer Klasse die Funktion CreateSurfaceFromBitmap aufrufen (aus dem Buch) dann compiliert er auch alles ohne zu meckern nur beim starten kommt dann
"Programm hat in Programm.exe einen Fehler verursacht ..." Naja in einer anderen Klasse klappt alles Problemlos, nur wiso hier nicht???

Danke für eure Hilfe

Gruß blackhunter
_________________
visit: www.theblacknet.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 15:27    Titel: Antworten mit Zitat

Kompiliert er alles ohne zu Meckern? Klingt ein wnig sehr verwirrend, da meine 1. Vermutung darauf liegen würde, das du die Funktion nicht in der Passenden Klasse aufrufst. Oder du hast keine Klassenvariable angelegt und der Rückgabewert der Funktion wird irgendwo in den Speicher geschrieben und verursacht den Fehler. Aber ohne Quellcodeausschnitt können wir niocht sehr viel sagen...

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blackhunter
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 35
Wohnort: Herzberg am Harz
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 15:50    Titel: Antworten mit Zitat

Dann versuch ich mal euch das näher zu erklären:

LPDIRECTDRAWSURFACE7 DirectDrawClass::CreateSurfaceFromBitmap(LPCTSTR File, int dWidth, int dHeight);

Das ist die Funktion die ich aufrufen will.
Da sie in der Klasse DirectDrawClass liegt hab ich folgende Funktion in main.cpp

LPDIRECTDRAWSURFACE7 CreateSurface(LPCTSTR File, int dWidth, int dHeight)
{
return DDrawObjekt.CreateSurfaceFromBitmap(File,dWidth,dHeight);
}

Diese Funktion ist dann halt überall verfügbar und führt dann die obere aus. (DDrawObject ist die DirectDrawClass in main.cpp angelegt)

Nun wirds Komplizierter:
Dann hab ich ne Klasse Person die die Funktion loadModel enthält.
Die sieht so aus:

void Person::loadModel(LPCTSTR File)
{
m_Surface = CreateSurface("data//models//player.sic",5,5);
}

Hier wird halt die Funktion CreateSurface (in main.cpp) aufgerufen,
diese Ruft dann die CreateSurfaceFromBitmap aus der DDrawKlasse auf.

Hier muss der Fehler liegen, denn wenn ich den Aufruf als Kommentar schreibe ( //m_Surface = Create...) dann klappt alles.

Aber es kann auch nicht an der Funktion CreateSurface (in main.cpp) liegen da diese Funktion bereiats aus einer anderen Klasse ebenfalls aufgerufen wird.

Hapt ihr jetzt mein Problem verstanden?
_________________
visit: www.theblacknet.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 16:27    Titel: Antworten mit Zitat

Du kannst mit CreateSurfaceFromBitmap, wie sie im Buch steht, nur .bmp Dateien laden. (Glaub ich)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blackhunter
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 35
Wohnort: Herzberg am Harz
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 17:05    Titel: Antworten mit Zitat

Ja ich weiß, das ist auch ne Bitmap, die er laden soll.
Aber wenn er Bilder nicht laden kann kommt der Fehler erst dann wenn er laden soll und nicht gleich beim start.
_________________
visit: www.theblacknet.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 17:12    Titel: Antworten mit Zitat

.sic sind soviel ich weiß keine .bmp Dateien, oder? Und dass der Fehler erst beim ausführen der Codezeile kommt liegt daran, dass der String da ja erst verwendet wird... glaube ich.

Cu,
VH
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blackhunter
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 35
Wohnort: Herzberg am Harz
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 18:13    Titel: Antworten mit Zitat

Die Bilder sind im BMP Format haben nur die Endung .sic das klappt bei allen anderen Bildern auch!
_________________
visit: www.theblacknet.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 20:15    Titel: Antworten mit Zitat

Slashes nur einfach verwenden, Backslashes Doppelt!
Wo wird in Person::loadModel(LPCSTR File) File benutzt? Der Rückgabewert ist auch void. Ist deshalb m_Surface Global? Wie Arbeiten die Variablen untereinander zusammen?
Du Kannst alles Kompilieren? Dann Debugge Das Programm Schritt für Schritt und überprüfe an vorhandenen Codestellen den Variableninhalt diverser globaler und lokaler Variablen. Steht tatsächlich der passende String in der Variable? Ist der Wert wirklich TRUE? usw.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blackhunter
Mini JLI'ler



Anmeldedatum: 19.07.2002
Beiträge: 35
Wohnort: Herzberg am Harz
Medaillen: Keine

BeitragVerfasst am: 17.11.2002, 12:11    Titel: Antworten mit Zitat

m_Surface ist eine Member Variable der Person Klasse!
LPCTSTR File der loadModel Funktion sollte dann der Create Surface Funktion übergeben werden. Aber da das nicht ging hab ich den String direkt in den Aufruf geschireben um zu sehen obs vieleicht daran liegt, kam aber das gleiche bei raus.

Ich werd nacher mal den Debugger benutzen
ich meld mich dann so gegen Abend nochmal.
_________________
visit: www.theblacknet.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 17.11.2002, 12:25    Titel: Antworten mit Zitat

Hast du vor dem Aufruf schon das DD-Objekt (erfolgreich) angelegt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DaN00b
JLI'ler



Anmeldedatum: 10.08.2002
Beiträge: 159

Medaillen: Keine

BeitragVerfasst am: 17.11.2002, 18:46    Titel: Antworten mit Zitat

also wenn des prog richtig kompiliert wird aber dann net geht könnte es daran liegen das des file des du übergibst nicht vorhanden ist

ich weiß ja net obs daran liegt weil ich den thread net komplett durchgelesen hab

also mal schaun ob der pfadname vom übergebenen string auch passt
_________________
Carpe Diem - Seize the day - Nütze den Tag!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung 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