Bitmap aus Datei in Resourcen?!



  • Hi,
    ich möchte ein Bitmap, das ich aus einer Datei geladen habe, mit Hilfe der Funktion UpdateResource() zu den Resourcen hinzufügen.
    Da ich das Bitmap mit der Funktion LoadImage() geladen habe, liegt das es nur in Form von HBITMAP vor, mit dem ich leider überhaupt nix anfangen kann.
    Kann mir da einer helfen?



  • Hä? Da steht doch extra, dass es als Rohdaten vorliegen muss! Wieso liest du die Datei dann nciht einfach mit CFile ein?



  • hmm, stimmt.
    Das müsste funktionieren.

    Edit:

    So, ich lade nun das Bild mit Hilfe von CFile.

    ...
    int iSize = cBitmap.GetLength();
    LPVOID *lpData = new LPVOID[iSize];
    if(cBitmap.Read(lpData,iSize) <= 0)
    {
    	MessageBox("Fehler beim lesen der Datei");
    	return;
    }
    ...
    

    Das klappt auch soweit wunderbar.

    Wenn ich nun aber die UpdateResource() Funktion aufrufe passiert garnix, d.h die Datei die ich verändern möchte bleibt so wie sie ist.

    ...
    hDLLHandle = BeginUpdateResource(m_path,FALSE);
    if(hDLLHandle == NULL)
    {
    	MessageBox("Die Datei kann nicht verändert werden. Möglicherweise schreibgeschützt","Fehler");
    	return;
    }
    DWORD dSize= 1398;
    WORD dLang = 1033;
    
    result = UpdateResource(hDLLHandle,
    			RT_BITMAP,
    			MAKEINTRESOURCE(150),
    			dLang,
    			lpData,
    			dSize);
    if(result == FALSE)
    {
    	MessageBox("Fehler beim speichern der Bilder","Fehler");
    	return;
    }
    
    // Updateprozess abschließen 
    if (!EndUpdateResource(hDLLHandle, FALSE)) 
    { 
        MessageBox("Datei konnte nicht verändert werden"); 
    	return;
    } 
    
    MessageBox("Gespeichert");
    ...
    

    Der Pfad zu der Datei (m_path) stimmt auch und es wird auch die Nachricht "Gespeichert" angezeigt.


Anmelden zum Antworten