JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Surface-Fehler *BITTE HELFEN*

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 22.12.2003, 13:12    Titel: Surface-Fehler *BITTE HELFEN* Antworten mit Zitat

Hallo Leute,
ich habe in meinem kleinen Spiel (bin noch ziemlicher Noob)
ein bisschen was geändert weil ich mir eine eigenen Surface-Verwaltungsklasse schreiben wollte. Jetzt gibt er folgenden Fehler aus



Code:

Deleting intermediate files and output files for project 'DirectDrawClass - Win32 Debug'.
--------------------Configuration: DirectDrawClass - Win32 Debug--------------------
Compiling...
Blitklasse.cpp
DirectDrawClass.cpp
DXAudioClass.cpp
Effektklasse.cpp
global.cpp
Kanuklasse.cpp
MainEngine.cpp
ManagerMain.cpp
Objektklassen.cpp
Spielschleife.cpp
Linking...
ManagerMain.obj : error LNK2001: unresolved external symbol "struct IDirectDrawSurface7 * idiot" (?idiot@@3PAUIDirectDrawSurface7@@A)
Debug/DirectDrawClass.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

DirectDrawClass.exe - 2 error(s), 0 warning(s)


Irgendwas stimmt mit dem Surface idiot nicht aber aus dieser Meldung werde ich nicht schlau...

-Danke im Vorraus


Zuletzt bearbeitet von Rodney am 23.12.2003, 18:03, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 22.12.2003, 13:32    Titel: Antworten mit Zitat

Hast du alle nötigen Libs und Header eingebunden?
Wenn ja, stimmen die Pfade?
Im Buch steht im Installationskapitel, wie man die Pfade richtig setzt.

Sonst käme vielleicht noch ein Schreibfehler in Frage Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 22.12.2003, 15:23    Titel: Antworten mit Zitat

Ich hatte das Surface falsch deklariert, daran lags... Confused

Ich habe mir eine Surface-Ersteller-Funktion geschrieben

Code:

   void SurfaceErstellen(LPDIRECTDRAWSURFACE7 surface, LPCTSTR File)
   {
      surface = DDrawObjekt.CreateSurfaceFromBitmap(File,0,0);
DDCOLORKEY ColorKey;
   ColorKey.dwColorSpaceLowValue = RGB(255,0,255);
   ColorKey.dwColorSpaceHighValue = RGB(255,0,255);
   
   surface->SetColorKey(DDCKEY_SRCBLT,&ColorKey);
   }


Diese rufe ich jetzt folgendermaßen auf

Code:

LPDIRECTDRAWSURFACE7 idiot = NULL;
Blitter.SurfaceErstellen(idiot,"pictures\\idiot.bmp");



Allerdings bricht er das Spiel jetzt immer ohne Fehlermeldung ab wenn ich das Surface (idiot) blitten will.
Woran liegt das???

-Danke im Vorraus, Rodney
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 23.12.2003, 10:47    Titel: Antworten mit Zitat

hat keiner eine Idee woran es liegen könnte? Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 23.12.2003, 10:54    Titel: Antworten mit Zitat

Viellelicht liegt es am Pfad.
Hast du es schon mit einem absoluten Pfad probiert?

Also z.B.

"C:\\ordner1\\idiot.bmp"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 23.12.2003, 12:22    Titel: Antworten mit Zitat

Ja aber auch wenn der Pfad nicht stimmt sollte das Programm eigentlich nicht abbrechen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 23.12.2003, 12:53    Titel: Antworten mit Zitat

Beni5 hat Folgendes geschrieben:
Ja aber auch wenn der Pfad nicht stimmt sollte das Programm eigentlich nicht abbrechen.


also der Pfad stimmt, wenn er nicht stimmt startet das Programm erst gar nicht...
Das Problem muss irgendwie dabei liegen das er das Surface nicht richtig erstellt! Er beendet nämlich genau dann wenn das surface geblittet werden soll...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 23.12.2003, 19:25    Titel: Antworten mit Zitat

Irgendwie muss hier das Surface falsch erstellt werden

Code:

  void SurfaceErstellen(LPDIRECTDRAWSURFACE7 surface, LPCTSTR File)
   {
      surface = DDrawObjekt.CreateSurfaceFromBitmap(File,0,0);
DDCOLORKEY ColorKey;
   ColorKey.dwColorSpaceLowValue = RGB(255,0,255);
   ColorKey.dwColorSpaceHighValue = RGB(255,0,255);
   
   surface->SetColorKey(DDCKEY_SRCBLT,&ColorKey);
   }


ich muss doch nur das surface deklarieren (LPDIRECTDRAWSURFACE7 surface) und dann diese Funktion mit den entsprechenden Parametern aufrufen oder???
also :
Code:
SurfaceErstellen(surface,"bild.bmp");


- DANKE IM VORRAUS
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 23.12.2003, 20:13    Titel: Antworten mit Zitat

Der Fehler ist simpel: Du übergibst den Zeiger by value, d.h. er wird nicht in idiot gespeichert... änder es mal so um und es sollte klappen:

Code:

void SurfaceErstellen(LPDIRECTDRAWSURFACE7 & surface, LPCTSTR File)
   {
      surface = DDrawObjekt.CreateSurfaceFromBitmap(File,0,0);
DDCOLORKEY ColorKey;
   ColorKey.dwColorSpaceLowValue = RGB(255,0,255);
   ColorKey.dwColorSpaceHighValue = RGB(255,0,255);
   
   surface->SetColorKey(DDCKEY_SRCBLT,&ColorKey);
   }


Am Aufruf wird nichts verändert.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
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 -> DirectX, OpenGL 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