Wie funktioniert das mit den Resource-Files?
-
Irgendwie macht mir das angst:
HMODULE test1 = LoadLibrary(L".\..\\debug\test1.exe");
Abgesehen davon, dass da ein Backslash fehlt vor test1.exe
-
LoadLibrary ist eigentlich nur zum Laden von DLLs gedacht, wieso willst du damit deine EXE laden?
Bitmap-Ressourcen kannst du einfach mit CBitmap::LoadBitmap laden.
-
Oh, das Backslash ist im Code aber gesetzt! Nunja, die MSDN sagt zu LoadLibrary:
The name of the executable module (either a .dll or .exe file)
Und in einem Beispielcode wird damit auch eine exe geladen...
Ich werde es mal mit LoadBitmap probieren... bisher habe ich das aber bewusst umgangen, weil ich (nach wie vor) gerne wissen würde, was denn am Code falsch ist / warum es nicht funktioniert.
-
Quatsch, nicht LoadBitmap, das wäre ja MFC, sondern LoadImage habe ich umgangen. Gebe mir zwar wenig Erfolgschancen, aber probieren werde ich es trotzdem mal.
-
Quatsch, nicht LoadBitmap, das wäre ja MFC
Ahja... und in welchem Forum bist Du?
-
...
Ich will jetzt eigentlich WinAPI machen, aber das Thema wurde nunmal hier rein geschoben...
-
HMODULE this = GetModuleHandle(NULL); HANDLE image = LoadImage(this, L"IDB_IMAGE", IMAGE_BITMAP, 200, 100, LR_DEFAULTCOLOR);Fehler: 1814, wie oben.
Gut, woran es liegt ist schon recht klar, aber wie macht man es richtig?
-
this ist natürlich ein Schlüsselwort, also nehmt es so:
HMODULE test1 = GetModuleHandle(NULL); HANDLE image = LoadImage(test1, L"IDB_IMAGE", IMAGE_BITMAP, 200, 100, LR_DEFAULTCOLOR);
-
HMODULE module = GetModuleHandle(NULL); HANDLE image = LoadImage(module, L"IDB_IMAGE", IMAGE_BITMAP, 200, 100, LR_DEFAULTCOLOR);this ist reserviert...
-
Über viele Umwege habe ich es jetzt mit MAKEINTRESOURCE() geschafft. Aber unerwarteterweise ist das BMP im Speicher 14 Byte kleiner als das Original.
Ich habs so geladen:
HRSRC img = FindResource(test1, MAKEINTRESOURCE(IDB_IMAGE), RT_BITMAP);Welche 14 Byte werden mir da abgeschnitten? Und vorallem, wie kann ich die komplette Datei, also raw einlesen?