 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
t10ottoo Senior JLI'ler

Alter: 40 Anmeldedatum: 15.04.2004 Beiträge: 210 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 05.06.2004, 21:34 Titel: Kapitel 17 DirectDraw |
|
|
Hi,
habe bei dem Thema irgendwie Probleme.
Er soll ja jetzt laut Buch ein Rechteck von der Quelloberfläche auf die Zieloberfläche kopieren, hier ist erstmal der Code:
Code: |
LPDIRECTDRAWSURFACE7 lpDDPrimary;
LPDIRECTDRAWSURFACE7 lpDDSurface;
// primäre Oberfläche und lpDDSurface müssen gültig sein
RECT DestR, SrcR;
DestR.top = 100;
DestR.bottom = 400;
DestR.left = 100;
DestR.right = 400;
SrcR.top = 100;
SrcR.bottom = 200;
SrcR.left = 100;
SrcR.right = 200;
lpDDSPrimary->Blt(&DestR,&SrcR,lpDDSurface,DDBLT_WAIT,NULL);
|
Fehler:
E:\Geheime Dateien\VisualBasic-Dateien\C++\C++KURS\Spieleprogrammierung mit DirectX und VisualC++\Meins\Kapitel17\DirectDraw1\DirectDraw.cpp(169) : error C2664: 'Blt' : Konvertierung des Parameters 2 von 'struct tagRECT *' in 'struct IDirectDrawSurf
ace7 *' nicht moeglich
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.
Der Fehler kommt in der Zeile vor:
Code: |
lpDDSPrimary->Blt(&DestR,&SrcR,lpDDSurface,DDBLT_WAIT,NULL);
|
Ich hoffe, ihr könnt mir dort weiterhelfen, ohne diesem ganzen Code da oben, erstellt er ein Fenster fehlerfrei.
Gruß
Thomas |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 05.06.2004, 21:49 Titel: |
|
|
Die Parameter beim Funktionsaufruf stimmen nicht. Du gibts ein Zeiger auf ein Rechteck anstatt eine DirectDraw Oberfläche als 2 Parameter.
Schau noch mal ins Buch auf die Parameterreinfolge. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
t10ottoo Senior JLI'ler

Alter: 40 Anmeldedatum: 15.04.2004 Beiträge: 210 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 05.06.2004, 22:06 Titel: |
|
|
Danke für die Antwort, aber im Buch steht das genau so drinne. |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 05.06.2004, 22:09 Titel: |
|
|
Vertausche doch einfach mal die beiden Parameter SrcR und lpDDSurface.
C. |
|
Nach oben |
|
 |
t10ottoo Senior JLI'ler

Alter: 40 Anmeldedatum: 15.04.2004 Beiträge: 210 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 05.06.2004, 22:11 Titel: |
|
|
Code: |
LPDIRECTDRAWSURFACE7 lpDDPrimary;
LPDIRECTDRAWSURFACE7 lpDDSurface;
// primäre Oberfläche und lpDDSurface müssen gültig sein
RECT DestR, SrcR;
DestR.top = 100;
DestR.bottom = 400;
DestR.left = 100;
DestR.right = 400;
SrcR.top = 100;
SrcR.bottom = 200;
SrcR.left = 100;
SrcR.right = 200;
lpDDSPrimary->Blt(&DestR,lpDDSurface,&SrcR,DDBLT_WAIT,NULL); |
Ahh, so geht das nun, danke
Aber nen Unterschied zu vorher seh ich net, ist immer noch nen schwarzes Fenster... |
|
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
|