Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

13.07.2006, 22:21

Bitmap laden

Hi, ich habe eine Funktion zum laden einer Bitmap. Nur dabei ist ein
kleines Problemchen aufgekommen. Primary Surface, usw. habe ich
in eine Klasse geschrieben, und in der Main wird eine Instanz davon
erzeugt. Die Bitmap lade Funktion befindet sich in einer anderen Datei, aber
wird in der Main Datei aufgerufen. Dabei wird die Instanz übergeben.
Zuvor wird aber DDraw in der Main initialisiert. So und in der Lade Funktion
tritt jetzt ein Fehler beim erstellen des Surfaces auf:

C-/C++-Quelltext

1
if(ddraw.LPDDraw7->CreateSurface(lpPicDesc2, lplpPicSurf7, 0) != DD_OK)


"ddraw" ist hier die übergebene Instanz und LPDDraw7 ist ein Member
dieser Instanz, wie man sicherlich erkennen kann. Wenn ich das Programm
jetzt starte, gibt er mir eine Fehlermeldung zurück, da das Surface nicht
auf LPDDraw7 erstellt werden kann. Das liegt wahrscheinlich daran, dass
es nur übergeben wird und nicht in der selben Datei initialisiert wird, ich
weiß es aber nicht genau. Wisst ihr jetzt vielleicht, wie ich das beheben
kann oder wie ich es anders lösen könnte? Bin dankbar für eure Hilfe ;)

P.S. @ nix da: Nein dein Funny Break Tutorial hat mir diesmal nicht
weitergeholfen, weil ich nicht meine komplette Anwendung umschreiben
wollte :P

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

13.07.2006, 22:25

C-/C++-Quelltext

1
2
3
4
5
6
// create surface

if(graphics::DirectDraw::getInstance().getInterface()->CreateSurface(&dd_surfacedesc, &pSurface->surface, NULL) != DD_OK)
{
    EXCEPTION(core::MID_DIRECTX, L"Cannot create surface, check parameters or your bitmap.");
    return false;
}


So habs ich, ich vermute mal lplpPicSurf7 ist vom Typ IDirectDrawSurface7**. Hast du die DDSURFACEDESC2 mit ZeroMemory geleert?

p.s. du hast aber ein gültiges DirectDraw Objekt, ja?

Anonymous

unregistriert

3

13.07.2006, 22:30

Oo Das lag am DDSURFACEDESC2 in der Main, die hatte ich nicht mit
ZeroMemory geleert ... Wusste gar nicht dass das so wichtig ist ...
Vielen Dank!

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

13.07.2006, 22:31

;) bitte bitte

Werbeanzeige