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

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

10.11.2007, 18:49

pointer problem...

ich will bitmaps anzeigen. und habe mir da eine klasse zusammengeschrieben.. hab sie getestet, und es hat auch alles funktioniert soweit..

nun hab ich ne klasse geschrieben die später mal den spieler darstellen soll..
jetzt hab ich das problem dass meine klasse die bilder plötzlich nicht mehr anzeigt..

die funktion TransparentBlt(); schlägt fehl..
im debugmodus hab ich alles kontrolliert, aber da scheint nichts falsch zu sein.. trotzdem schlägt die funktion fehl..



C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
    HGDIOBJ gdiobj;
    gdiobj = SelectObject(tplayer.hDC(0), tplayer.hBitmap(0));

    if(gdiobj == NULL || gdiobj == HGDI_ERROR)
    {
        int ichlebewenndustirbst  = 0;
    }

    if (TransparentBlt(m_dcBackBuffer, 0, 0, 65, 35, tplayer.hDC(0), 0, 0, tplayer.bmWidth(0), tplayer.bmHeight(0), RGB(0, 255, 0)) == false)
    {
        int ichlebewenndustirbst = 1;
    }


help .. :cry:

ps: der titel passt nicht mehr, weil ich das problem zuerst woanders vermutet hab...
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

2

11.11.2007, 01:08

hat da keiner einen vorschlag/tipp/idee oder so?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

11.11.2007, 10:21

Zitat von »"$nooc"«

hat da keiner einen vorschlag/tipp/idee oder so?


Aus dem Codefragment wird wohl nichts ersichtlich sein was zur Lösung deines Problems beitragen könnte.
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

4

11.11.2007, 11:07

ok.. dann poste ich mal etwas code:

createBackBuffer(); funktioniert anstandslos..
loadBitmap(); funktioniert genauso ohne probleme
renderImage(); erst hier tritt ein fehler auf

so.. falls noch mehr benötigt wird poste ichs gerne..
hoffe mir kann jemand helfen.. seit gestern komm ich nicht weiter.. bin das im debugger schon 100mal durchgegangen, ohne erfolg..
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

11.11.2007, 18:54

oh man, hat keiner ne antwort oder so? ^^
ich komm echt nicht weiter...
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

6

11.11.2007, 18:58

Keine Ahnung... das einzige was mir auffält ist,
dass ich "ichlebewenndustirbst" so schreiben würde:

ichLebeWennDuStirbst

oder

IchLebeWennDuStirbst

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

11.11.2007, 19:00

:D der is gut ^^

die variable hab ich nur definiert, wie man sich denken kann, damit ich im debugger sofort sehe ob die funktion true oder false rausgibt.. sobald das mal irgendwie klappt werd ich das nat. etwas verschönern..

im moment wäre ich echt verdammt froh wenn mir jemand sagen könnte wieso das programm nicht richtig läuft. die werte stimmen an sich, m_BackBuffer ist gültig, DC und Bitmap sind ok.. und trotzdem wird nichts angezeigt.. :cry:
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

8

11.11.2007, 19:40

Könnte vielleicht an dem "RGB(0, 255, 0)" Parameter in der Funktion TransparentBlt liegen. Denn da ist UINT gefragt, und du übergibst COLORREF. Probier das mal mit Hex 0x00BBGGRR und bei einheitlicher Breite und Höhe von Src und Dest.
Hab noch nix mit den Funktionen a la TransparentBlt gemacht, denke aber einer von den Parametern ist faul...
fka tm

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

9

11.11.2007, 20:02

wie gesagt: das mit dem bilder anzeigen funktioniert. hab schon bilder anzeigen lassen, das ganze funzt einwandfrei.. auch dass das bild so angezeigt wird das farben mit dem wer "0, 255, 0" irgnoriert werden und "dursichtig" sind..

jetzt hab ich aber ne klasse "Player" geschrieben, und erst seitdem funzt es nicht.. aber ich weiss nicht warum.. das macht mich fertig! ich will weiter kommen verdammt nochmal.. jetz schon seit einem ganzen tag suche ich und finde nichts! zum kotzen..

ich mein wenns hilft dann lade ich von mir aus das komplette projekt irgendwo hoch und man kann sichs selbst mal ansehn (ist nicht wirklich viel code).. aber keine ahnung wieso der mist nicht geht.. das nervt mich schon so unendlich!!

edit:
mit GetLastError kann ich angeblich den letzten fehler abfragen..
kann mir jemand sagen wie das geht? ^^ bwz. kann mit GetLastError() vllt. weiter helfen?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

10

11.11.2007, 20:24

Einfach ma GetLastError aufrufen und das Ergebnis in eine DWORD Variable speichern, dann per Debugger oder sonstwie den Wert der Variable checken und in einer WIN32API-Dokumentation deiner Wahl unter "system error codes" schauen, welchem Fehler der gelieferte Zahlenwert entspricht ;)

Werbeanzeige