|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Shark Mini JLI'ler
Anmeldedatum: 27.08.2003 Beiträge: 9
Medaillen: Keine
|
Verfasst am: 30.08.2003, 18:01 Titel: CreateSurfaceFromBitmap(IMAGE_FILE,0,0) - Problem |
|
|
Hallo,
in dem oben genannten Funktionsaufruf habe ich folgendes Problem. Immer wenn ich das Programm starten will und der 2. und 3. Parameter nicht als Fenstergröße (SCR_WIDTH, SCR_HEIGHT) definiert werden, startet das Programm zwar, aber es blinkt nur kurz ein Fenster auf und ich bin schon wieder im Compiler.
Was mache ich falsch ? Im Buch steht, es würde dann einfach das Bild in orginalgröße erscheinen.
Pls hlp,
thx
Shark _________________ Wir sollten die Zeit als Werkzeug nutzen, nicht als Couch. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 30.08.2003, 19:15 Titel: |
|
|
du hast gernichts falsch gemacht. der der was falsch gemacht hat ist wenn dann der Autor.
ich habs bei mir auch mal mit 0 ausprobiert, stürzte am anfang des programms ab.ich hab auch die beiden Zeilen in der funktion gefunden die diesen fehler verursacht:
Code: | SurfDesc.dwWidth = dWidth;
SurfDesc.dwHeight = dHeight; |
mit diesen beiden Zeilen sagst du das die Surface dWidth breit und dHeight sein soll. wenn diese beiden werte 0 entsprechen, heißt das die Oberfläche gerade mal eine auflösung von 0x0 Pixeln hat!!! da ist ja klar das es spätestens beim blitten einen fehler gibt. alle anderen teile der funktion die mit dWidth und dHeight arbeiten funktionieren mit 0.
meiner ansicht nach gibts 2 konkrete Lösungen:
du fügst der "CreateSurfaceFromBitmap"-funktion 2 neue Parameter hinzu; diese beiden beschreiben dann nur die größe der zu erstellenden Surface. das sähe dann so aus:
Code: | ... CreateSurfaceFromBitmap(......... , SurfaceX, SurfaceY);
{
...
SurfDesc.dwWidth = SurfaceX;
SurfDesc.dwHeight = SurfaceY;
...
} |
die zweite, elegantere wäre die Parameter so zu laßen wie sie sind dadafür anhand des geladenen Bildes(ist dann in "hBM" oder außerdem auch in dem DeviceContext drin)rausfinden was für 'ne Auflösung das bild hat und dann die für die erstellung der oberfläche nutzen. |
|
Nach oben |
|
|
Shark Mini JLI'ler
Anmeldedatum: 27.08.2003 Beiträge: 9
Medaillen: Keine
|
Verfasst am: 31.08.2003, 15:32 Titel: |
|
|
Ja, danke ...
Das war nur ein Fehler. Der andere Fehler hat mich noch viel mehr zur Weißglut gebracht und nach vielen, vielen Minuten hab ich ihn dann endlich gehabt. Bei #define darf man ja keinen Strichpunktmachen, doch da ich C++ gerade erst zu lernen begonnen habe, wusste ich das nicht. Puh endlich hat der Alptraum ein Ende.
Die Fehlersuche ist eigentlich das, was bei meinen Programmen die meiste Zeit einnimmt. Das kommt wahrscheinlich aber auch daher, dass ich bei manchen Befehlen die Parameter noch nicht komplett weiß ...
cu & thx,
Shark _________________ Wir sollten die Zeit als Werkzeug nutzen, nicht als Couch. |
|
Nach oben |
|
|
nigs Super JLI'ler
Anmeldedatum: 19.12.2002 Beiträge: 359
Medaillen: Keine
|
Verfasst am: 31.08.2003, 18:09 Titel: |
|
|
so ist's oft. ein kleines zeichen vergeßen oder an die falsche stelle gesetzt und schon sitzt man stundenlang dran. naja, so ist's halt im Programier-buissness |
|
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
|