| 
			
				|  | JLI Spieleprogrammierung 
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| CorDharel Junior JLI'ler
 
  
 
 Anmeldedatum: 15.10.2002
 Beiträge: 73
 Wohnort: Winterthur,  Zürich, CH
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.06.2005, 19:22    Titel: |   |  
				| 
 |  
				| Oh hmm mein Fehler   
 Aber irgendwie bring ich die Parameter nicht so hin, dass es funzt. Es kommt immer der Error:
 
 
  	  | Code: |  	  | if(FAILED(lpDDSPrimary->Blt(NULL,NULL,NULL, DDBLT_COLORFILL |DDBLT_WAIT,NULL)))
 {
 Error("Blt ist fehlgeschlagen");
 return;
 }
 | 
 _________________
 Greetz CorDharel
 |  |  
		| Nach oben |  |  
		|  |  
		| Patrick Dark JLI Master
 
  
 
 Anmeldedatum: 25.10.2004
 Beiträge: 1895
 Wohnort: Düren
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 30.06.2005, 19:26    Titel: |   |  
				| 
 |  
				| Das ist klar, weil du für das leeren einer Surface die Löschspezifikationen nicht übergeben hast: 
 
  	  | CPP: |  	  | // /////////////////////////////////////////////////////////////////////////// // PUBLIC
 //
 // "Leert" den "Workbuffer".
 // ///////////////////////////////////////////////////////////////////////////
 void directdraw::clear (void)
 {
 DEBUG_STACK;
 
 // Sicherheitscheck
 if (locked_)
 EXCEPTION ("Could not clear the work-surface. Work-surface is locked.");
 
 // Hilfsstruktur
 ::DDBLTFX directdraw_blitfx;
 
 // Struktur initialisieren
 ::ZeroMemory (&directdraw_blitfx, sizeof(directdraw_blitfx));
 
 // Parameter setzen
 directdraw_blitfx.dwSize        = sizeof(directdraw_blitfx);
 directdraw_blitfx.dwFillColor   = 0;
 
 // Backbuffer Leeren.
 if (directdraw7_work_->Blt (NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &directdraw_blitfx) != DD_OK)
 EXCEPTION ("IDirectDrawSurface7::Blt(); failed!\n\n"
 "Could not clear the work-surface.");
 }
 | 
 _________________
 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
 [ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
 |  |  
		| Nach oben |  |  
		|  |  
		| CorDharel Junior JLI'ler
 
  
 
 Anmeldedatum: 15.10.2002
 Beiträge: 73
 Wohnort: Winterthur,  Zürich, CH
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 01.07.2005, 13:23    Titel: |   |  
				| 
 |  
				| Hmm? Jetzt hab ich doch das bild auf die 2te Surface kopiert und will sie auf der ersten sehen. Wo kommt da das löschen drin vor?   
 [edit] Jetzt versteh ich gar nichts mehr. Ich kopiere doch den Inhalt von der zweiten Oberfläche auf die erste mit dem Befehl
 
 
  	  | Code: |  	  | lpDDSPrimary->BltFast(10,10,lpDDSurface,NULL,DDBLT_WAIT); | 
 
 nicht? Dann sollte doch Britney im Programm kommen
  _________________
 Greetz CorDharel
 |  |  
		| Nach oben |  |  
		|  |  
		| City Hunter Super JLI'ler
 
 
 Alter: 40
 Anmeldedatum: 18.04.2004
 Beiträge: 330
 Wohnort: Berlin
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 01.07.2005, 22:05    Titel: |   |  
				| 
 |  
				|  	  | DirectXer hat Folgendes geschrieben: |  	  | doch kann sein. Im Buch stand net, dass wenn du den Code selber abtippst, folgende Zeilen einfügen musst:  	  | CPP: |  	  | #pragma comment(lib, "ddraw.lib") | 
 
 Gruß DirectXer
 
 EDIT: Menno, Patty war schneller
    | 
 Im Buch steht auch drin das du die Lib in den Projekt/Eigenschaften verlinken sollst
  |  |  
		| Nach oben |  |  
		|  |  
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 02.07.2005, 08:48    Titel: |   |  
				| 
 |  
				|  	  | City Hunter hat Folgendes geschrieben: |  	  |  	  | DirectXer hat Folgendes geschrieben: |  	  | doch kann sein. Im Buch stand net, dass wenn du den Code selber abtippst, folgende Zeilen einfügen musst:  	  | CPP: |  	  | #pragma comment(lib, "ddraw.lib") | 
 
 Gruß DirectXer
 
 EDIT: Menno, Patty war schneller
    | 
 Im Buch steht auch drin das du die Lib in den Projekt/Eigenschaften verlinken sollst
  | 
 
 Dann les dir mal meinen nächsten Post durch
  |  |  
		| Nach oben |  |  
		|  |  
		| CorDharel Junior JLI'ler
 
  
 
 Anmeldedatum: 15.10.2002
 Beiträge: 73
 Wohnort: Winterthur,  Zürich, CH
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 02.07.2005, 10:19    Titel: |   |  
				| 
 |  
				| Egal wie ichs auch anstelle, ich krieg es nicht hin   
 So siehts aus:
 
 Main():
 
 
  	  | Code: |  	  | //sekundäre oberfläche laden lpDDSurface = CreateSurfaceFromBitmap("G:\britney.bmp",100,100);
 | 
 
 Render():
 
 
  	  | Code: |  	  | //bild anzeigen lpDDSPrimary->BltFast(10,10,lpDDSurface,NULL,DDBLT_WAIT);
 | 
 
 
 CreateSurfaceFromImage():
 
 
  	  | Code: |  	  | LPDIRECTDRAWSURFACE7 CreateSurfaceFromBitmap(LPSTR File, int dWidth, int dHeight) {
 //device context für das bild und die oberfläche
 HDC hBmDC, hSurfDC;
 
 //handle der zu ladenden bitmap
 HBITMAP hBM;
 
 //oberflächenbeschreibung
 DDSURFACEDESC2 SurfDesc;
 
 //zeiger auf die oberfläche
 LPDIRECTDRAWSURFACE7 lpDDSurface;
 
 //bild laden
 hBM = (HBITMAP)LoadImage(0,File, IMAGE_BITMAP,dWidth,dHeight,LR_LOADFROMFILE);
 
 //ist ein fehler aufgetreten?
 if(NULL == hBM)
 {
 Error("Fehler 1");
 return NULL;
 }
 
 //oberflächenbeschreibung initialisierne
 ZeroMemory(&SurfDesc,sizeof(SurfDesc));
 SurfDesc.dwSize = sizeof(SurfDesc);
 
 //Caps höhe und breite berücksichtigen
 SurfDesc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
 
 SurfDesc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
 
 SurfDesc.dwWidth = dWidth;
 
 SurfDesc.dwHeight = dHeight;
 
 //oberfläche anlegen
 if(FAILED(lpDD7->CreateSurface(&SurfDesc,&lpDDSurface,NULL)))
 {
 Error("Fehler 2");
 return NULL;
 }
 
 //device context von fläche holen
 lpDDSurface->GetDC(&hSurfDC);
 
 //kompatiblen DC für bild anlegen
 hBmDC = CreateCompatibleDC(hSurfDC);
 
 //bild für DC holen
 SelectObject(hBmDC,hBM);
 
 //bild in oberfläche kopieren
 BitBlt(hSurfDC,0,0,dWidth,dHeight,hBmDC,0,0,SRCCOPY);
 
 //Device Context freigeben
 lpDDSurface->ReleaseDC(hSurfDC);
 
 //DC und bild löschen
 DeleteDC(hBmDC);
 DeleteObject(hBM);
 
 //zeiger zurückgeben
 return lpDDSurface;
 
 }
 
 | 
 
 Es sollte doch endlich Britney anzeigen
     
 Ich wäre sehr dankbar für Hilfe
 _________________
 Greetz CorDharel
 |  |  
		| Nach oben |  |  
		|  |  
		| Patrick Dark JLI Master
 
  
 
 Anmeldedatum: 25.10.2004
 Beiträge: 1895
 Wohnort: Düren
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 02.07.2005, 10:23    Titel: |   |  
				| 
 |  
				| Wenn Du ICQ hast schreib mich mal an und send mir den Code, ich guck mal kurz drüber   
 Würd Dir ja sonst meinen DirectDraw Code geben aber ich glaub der währe Dir (noch) etwas zu "hoch"
  _________________
 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
 [ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
 |  |  
		| Nach oben |  |  
		|  |  
		| CorDharel Junior JLI'ler
 
  
 
 Anmeldedatum: 15.10.2002
 Beiträge: 73
 Wohnort: Winterthur,  Zürich, CH
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 06.07.2005, 23:02    Titel: |   |  
				| 
 |  
				| Wenn du mir sagst ich soll dich anschreiben, sag doch deine ICQ Nummer   
 Meine ist 98282499
 
 Ich habe nur den Code nicht gepostet weil alle immer meinen "Ah poste nicht alles" und "BAN 4 LIFE"
  Ich werd es jetzt aber trotzdem tun, obwohl ich denke dass der Fehler in einer kleinen Zeile ist. Bitte hasst mich nicht deswegen!  Aber vielleicht ist ja einer bei der Arbeit und hat bisher nichts zu tun   
 Ich habe die Blitdinge mit ///////////////// versehen (an 2 Stellen, WinMain() und Render()) also bitte zuerst da schauen. Da wird ja wohl der Fehler sein.
 
 Übrigens weiss ich nicht für was die Funktion DeterminePixel ist, die hab ich mal aus dem Forum kopiert, brauch ich da wo ich bin noch nicht soweit ich weiss.
 
 Sorry dass ich nicht auf der CD im Code nachschauen kann, aber CDs verlieren sich halt nun mal schneller als ganze Bücher
   
 
 
 
  	  | CPP: |  	  | ///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
 
 //sekundäre oberfläche laden
 lpDDSurface = CreateSurfaceFromBitmap("G:\britney.bmp",100,100);
 
 
 /////////////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////////////
 
 
 /////////////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////////////
 
 //bild anzeigen
 lpDDSPrimary->BltFast(10,10,lpDDSurface,NULL,DDBLT_WAIT);
 
 /////////////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////////////
 
 
 | 
 _________________
 Greetz CorDharel
 
 Zuletzt bearbeitet von CorDharel am 11.07.2005, 16:18, insgesamt einmal bearbeitet
 |  |  
		| Nach oben |  |  
		|  |  
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 07.07.2005, 11:46    Titel: |   |  
				| 
 |  
				| hmm, ich hab im Moment keine Zeit, vielleicht guck ich mir den nachher ma an. 
 BTW: Patricks ICQ-Number steht in seiner Sig. Weiß ich aus eigener Erfahrung
  Vielleicht erlaubt dir ja auch einer, seinen Websace zu benutzen... Dann kannstes uploaden |  |  
		| Nach oben |  |  
		|  |  
		| HomeLess_PunkDrummer JLI Master Trainee
 
  
 Alter: 37
 Anmeldedatum: 28.11.2004
 Beiträge: 583
 Wohnort: Alter Joghurtbecher an der A4
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 07.07.2005, 19:56    Titel: |   |  
				| 
 |  
				| Das beste ist wenn du bei komplexen Sachen wie Apis damit anfängst sie einfach zu initialisieren  Denn: Funktionen die du nicht kennst, die aber da sind und du hast sie nicht geschrieben verwirren nur. Glaub mir, ich spreche aus Erfahrung  _________________
 "Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
 |  |  
		| Nach oben |  |  
		|  |  
		| CorDharel Junior JLI'ler
 
  
 
 Anmeldedatum: 15.10.2002
 Beiträge: 73
 Wohnort: Winterthur,  Zürich, CH
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 11.07.2005, 16:18    Titel: |   |  
				| 
 |  
				| Schaut euch den Code bitte nochmals an. Da passiert ja der Fehler. Ich hab den Rest wieder gelöscht, da der ja funktioniert. _________________
 Greetz CorDharel
 |  |  
		| Nach oben |  |  
		|  |  
		| CorDharel Junior JLI'ler
 
  
 
 Anmeldedatum: 15.10.2002
 Beiträge: 73
 Wohnort: Winterthur,  Zürich, CH
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 14.07.2005, 18:11    Titel: |   |  
				| 
 |  
				| So ich hab jetz was neues herausgefunden. Es geht zwar immer noch nicht    aber ich weiss jetzt warum man zwei backslashes benötigt bei G:\\britney.bmp. 
 Ich glaube der Fehler liegt bei der Funktion CreateSurfaceFromImage. Wenn ich die Debugge, und er bei der Zeile
 
 
 
  	  | Code: |  	  | //bild laden hBM = (HBITMAP)LoadImage(0,File, IMAGE_BITMAP,dWidth,dHeight,LR_LOADFROMFILE);
 | 
 
 vorbeigeht steht bei hBM immer noch wie am anfang:
 
 
  	  | Zitat: |  	  | CXX0030: Error: expression cannot be evaluated | 
 
 Das kann doch nicht sein oder
  _________________
 Greetz CorDharel
 |  |  
		| Nach oben |  |  
		|  |  
		| CorDharel Junior JLI'ler
 
  
 
 Anmeldedatum: 15.10.2002
 Beiträge: 73
 Wohnort: Winterthur,  Zürich, CH
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 21.07.2005, 01:15    Titel: |   |  
				| 
 |  
				| Die Lösung zu allen Problemen findet der werte Leser in diesem Thread: 
 Klick mich
 _________________
 Greetz CorDharel
 |  |  
		| Nach oben |  |  
		|  |  
		| GDN-chef Mini JLI'ler
 
 
 
 Anmeldedatum: 15.11.2005
 Beiträge: 10
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 15.11.2005, 16:45    Titel: LoadImage Problem |   |  
				| 
 |  
				| Hallo Hab ein ahnliches Problem, möchte ein Bild blitten, arbeite auch mit einer 2. Surface
 
 Wie auch immer ich hab hier den Code:
 Uploadlink:
 
 [url=http://rapidshare.de/files/7675280/Main.cpp.html ]Main()[/url]
 |  |  
		| Nach oben |  |  
		|  |  
		| Blubb-Tec JLI'ler
 
  
 Alter: 34
 Anmeldedatum: 29.03.2005
 Beiträge: 171
 Wohnort: Düsseldorf
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 15.11.2005, 17:24    Titel: |   |  
				| 
 |  
				| [quote="CorDharel"] 
  	  | Code: |  	  | CreateSurfaceFromBitmap("G:\britney.bmp",100,100); | 
 /quote]
 
 also ich würde ja nen doppel-\\ benutzen:
 CreateSurfaceFromBitmap("G:\\britney.bmp",100,100);
 
 (code/cpp-tags gingen nich wegen (b)(/b))
 _________________
 www.planlos.de
 |  |  
		| 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
 |