|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 19.02.2003, 17:45 Titel: Probleme mit dem Laden von Bildern |
|
|
Ich habe versucht, eine Funktion zu schreiben, mit der man ein Bild auf eine Oberfläche Blitten kann:
void EDDPicBlit(LPDIRECTDRAWSURFACE7 *lpSurface, char DatName[], int xpos, int ypos, int xSize, int ySize)
{
HBITMAP hBM = (HBITMAP)LoadImage(NULL, DatName, IMAGE_BITMAP, xSize, ySize, LR_LOADFROMFILE);
HDC hSurfDC;
*lpSurface->GetDC(&hSurfDC);
HDC hBmDC=CreateCompatibleDC(hSurfDC);
BitBlt(hSurfDC, xpos, ypos, xSize, ySize, hBmDC, 0, 0, SRCCOPY);
*lpSurface->ReleaseDC(hSurfDC);
DeleteObject(hBM);
}
Mit folgendem Codeabschnitt hab ich sie aufgerufen:
Hintergrundbild=2;
sprintf(Bild, "Hintergrund%d.bmp", Hintergrundbild);
EDDPicBlit(&lpHintergrund, Bild, 0, 0, 1024, 768);
lpHintergrund ist eine gültige Oberfläche, Hintergrundbild eine gültige int-Variable.
Bei der kompelierung entstehen 2 Fehler:
*lpSurface->GetDC...
*lpSurface->ReleaseDC...
Die beiden Zeilen sind falsch. Wenn ich die * weglase, so dass es keine Zeiger mehr sind, kommt zwar kein Feher, aber es funktioniert nicht. Die lpHintergrundoberfläche bleibt unverändert. Daraushabe ich geschlossen, dass man mit Zeiger die Oberfläche bearbeiten muss, da ja sonst eine Kopie der Variable erstellt wird. Aber mit zeigern funktionierts halt nicht.
Hoffentlich kann mir einer helfen! |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 19.02.2003, 17:51 Titel: |
|
|
Versuch mal (*pSurface)->bla _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 19.02.2003, 18:11 Titel: |
|
|
Hallo,
wenn ich nicht völlig blind bin, sollte es
[edit]
Ich bin blind, aber warum übergibt du bitte Zeiger
auf die Zeiger der Oberfläche und nicht die Zeiger direkt?
Christian |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 19.02.2003, 18:37 Titel: |
|
|
Ich vermute mal er hat sich das bei den DirectX API-Aufrufen abgeguggt und hat das für korrekt gehalten. Nur eine Vermutung aber meine Verhaltensanalysen sind ziemlich oft korrekt. ;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
|
|
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
|