DevIL-Problem
-
Hi,
das offizielle SF-Forum für DevIL scheint mehr oder weniger tot oder zumindest sehr schwach frequentiert zu sein, aber vielleicht könnt ihr mir ja helfen.
Ich würde gerne ein Bild mit ilutWinLoadImage() direkt in eine Windows-Bitmap laden, das Bild liegt als BMP/PNG vor (spielt ja keine Rolle, DevIL handelt das transparent).
Etwas Code...
Am Anfang:
ilInit(); iluInit(); ilutRenderer(ILUT_WIN32); }
m_hDC = ::CreateCompatibleDC( 0 ); if ( !m_hDC ) IMERROR( L"CreateCompatibleDC() failed!" ); m_hBitmap = ::ilutWinLoadImage( L"test.bmp", m_hDC ); if ( !m_hBitmap ) { unsigned long ulErrorCode = ::ilGetError(); IMERROR( L"ilutWinLoadImage() failed, error " + toString( ulErrorCode ) + L"!" ); }
liutWinLoadImage gibt aber immer 0 zurück und ilGetError() liefert dann den Fehlercode 1290, was laut der Definition in der Headerfile etwa "Datei nicht gefunden" bedeutet.
Die Datei existiert natürlich, sie ist in allen möglichen Verzeichnissen, auch absolute Pfadangaben usw. habe ich natürlich schon ausprobiert.
Das mit CreateCompatibleDC() könnte so falsch sein, aber ich hatte da auch schon mehrere Versionen ausprobiert und das ist eben die aktuelle.
Eigentlich sollte es so doch aber gehen, oder?
ChrisM
-
ChrisM schrieb:
liutWinLoadImage gibt aber immer 0 zurück und ilGetError() liefert dann den Fehlercode 1290, was laut der Definition in der Headerfile etwa "Datei nicht gefunden" bedeutet.
Aha, und was bedeutet es genau?
Bye, TGGC Deine Unterstützung wird gebraucht!
-
Hi,
danke, der Post hat mir echt weitergeholfen.
Ich hab ja schon geschrieben, dass die Datei (sogar Groß-/kleinschreibung berücksichtigt) in allen Verzeichnissen, wo er evtl. suchen könnte, liegt, z.B. Debug-Ordner, Projektordner (Arbeitsverzeichnis beim Starten aus MSVC und Ort der DevIL-DLLs) sowie C-Root. Absolute Adressierung klappt ja auch nicht.
ChrisM
-
Ich habe schon verstanden, das die Datei gefunden werden sollte. Also ist es doch am sinnvollsten anzunehmen, deine Deutung was 1290 in etwa heisst, wäre falsch. Wenn dir das nicht hilft kann ich nur noch sagen: Du lügst oder die Library ist kaputt.
BTW: Was liefert ilGetError() bevor du das Bild läsdt?
Bye, TGGC Deine Unterstützung wird gebraucht!
-
Hi,
Fehler ist gefunden, die vorcompilierte DevIL-Version war ohne Unicodesupport compiliert.
Lösung(en):
- Mit Unicode selbst compilieren
- Unicode-Defines für das Include temporär undefinen und mit ASCII ansteuernAllerdings läd sie nur Datenmüll wenn ich das HBITMAP BitBlt(), hat noch jemand eine Idee?
ChrisM
-
ChrisM schrieb:
Allerdings läd sie nur Datenmüll wenn ich das HBITMAP BitBlt(), hat noch jemand eine Idee?
Was machst du mit dem HBITMAP ? Könntest ja einfach überprüfen ob die Daten richtig sind, indem du dir das Zeugs anschaust.
-
ChrisM schrieb:
Allerdings läd sie nur Datenmüll wenn ich das HBITMAP BitBlt(), hat noch jemand eine Idee?
Ahja, na dann ists klar.
Wie bitte?
Bye, TGGC (NP Intelligenz)
-
ChrisM schrieb:
Allerdings läd sie nur Datenmüll wenn ich das HBITMAP BitBlt(), hat noch jemand eine Idee?
Hatten wir doch vor kurzem erst.
Lädst die Datei wahrscheinlich im TEXT-Mode.
Hatte TGGC doch so schön erklärt...
-
Hi,
nein, ich lade doch gar nicht selbst, ich lasse DevIL laden. Und machen tu ich mit dem HBITMAP auch gar nichts, nur SelectObject() und BitBlt().
ChrisM
-
Dann ist irgendwas falsch.
Bye, TGGC \-/