Guybrush Threepwood Geschrieben 23. November 2005 Geschrieben 23. November 2005 Blöder Titel ich weiß :hells: Aber ich habe folgende Funktion um ein beliebiges Bild (z.B. ein Gif) von der Festplatte zu laden: HBITMAP LoadAnImage(const char* FileName) { // Use IPicture stuff to use JPG / GIF files IPicture* p; IStream* s; HGLOBAL hG; void* pp; FILE* fp; // Read file in memory fp = fopen(FileName,"rb"); if (!fp) return NULL; fseek(fp,0,SEEK_END); int fs = ftell(fp); fseek(fp,0,SEEK_SET); hG = GlobalAlloc(GPTR,fs); if (!hG) { fclose(fp); return NULL; } pp = (void*)hG; fread(pp,1,fs,fp); fclose(fp); // Create an IStream so IPicture can CreateStreamOnHGlobal(hG,false,&s); if (!s) { GlobalFree(hG); return NULL; } OleLoadPicture(s,0,false,IID_IPicture,(void**)&p); if (!p) { s->Release(); GlobalFree(hG); return NULL; } s->Release(); GlobalFree(hG); HBITMAP hB = 0; p->get_Handle((unsigned int*)&hB); // Copy the image. Necessary, because upon p's release, // the handle is destroyed. HBITMAP hBB = (HBITMAP)CopyImage(hB,IMAGE_BITMAP,0,0, LR_COPYRETURNORG); p->Release(); return hBB; } [/PHP] Hat jemand eine Idee wie ich statt einer Datei eine Ressource die ich meiner Anwendung hinzugefügt habe verwenden kann?
Guybrush Threepwood Geschrieben 23. November 2005 Autor Geschrieben 23. November 2005 Ok hat sich erledigt. Man kann die Resource mit FindResource ermitteln und dann mit LoadResource und LockResource laden. Danach dann einfach mit SizeofResource die Größe für GloblaAlloc ermitteln und mit memcpy umkopieren.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden