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
|
Verfasst am: 16.11.2002, 15:21 Titel: Funktion aus Klasse aufrufen (HILFE) |
|
|
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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 16.11.2002, 15:27 Titel: |
|
|
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 |
|
|
blackhunter Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 35 Wohnort: Herzberg am Harz Medaillen: Keine
|
Verfasst am: 16.11.2002, 15:50 Titel: |
|
|
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 |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 16.11.2002, 16:27 Titel: |
|
|
Du kannst mit CreateSurfaceFromBitmap, wie sie im Buch steht, nur .bmp Dateien laden. (Glaub ich) |
|
Nach oben |
|
|
blackhunter Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 35 Wohnort: Herzberg am Harz Medaillen: Keine
|
Verfasst am: 16.11.2002, 17:05 Titel: |
|
|
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 |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 16.11.2002, 17:12 Titel: |
|
|
.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 |
|
|
blackhunter Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 35 Wohnort: Herzberg am Harz Medaillen: Keine
|
Verfasst am: 16.11.2002, 18:13 Titel: |
|
|
Die Bilder sind im BMP Format haben nur die Endung .sic das klappt bei allen anderen Bildern auch! _________________ visit: www.theblacknet.de |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 16.11.2002, 20:15 Titel: |
|
|
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 |
|
|
blackhunter Mini JLI'ler
Anmeldedatum: 19.07.2002 Beiträge: 35 Wohnort: Herzberg am Harz Medaillen: Keine
|
Verfasst am: 17.11.2002, 12:11 Titel: |
|
|
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 |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 17.11.2002, 12:25 Titel: |
|
|
Hast du vor dem Aufruf schon das DD-Objekt (erfolgreich) angelegt? |
|
Nach oben |
|
|
DaN00b JLI'ler
Anmeldedatum: 10.08.2002 Beiträge: 159
Medaillen: Keine
|
Verfasst am: 17.11.2002, 18:46 Titel: |
|
|
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 |
|
|
|