Resource in Buffer speichern?

Fastkiller

Mitglied

Hi!

Ich möchte eine Resource in einen Buffer laden und diesen Buffer dann wieder später zur exe als Resource hinzufügen.
Das mache ich so:

C++:
	HMODULE hLibrary;
	HRSRC hResource;
	HGLOBAL hResourceLoaded;
	LPBYTE lpBuffer;
	
	LPBYTE StaticBuffer;


	hLibrary = LoadLibrary(szEFileName);
	if (NULL != hLibrary)
	{
		hResource = FindResource(hLibrary, MAKEINTRESOURCE(110), "IMAP");
		if (NULL != hResource)
		{
			hResourceLoaded = LoadResource(hLibrary, hResource);
			if (NULL != hResourceLoaded)        
			{
				lpBuffer = (LPBYTE) LockResource(hResourceLoaded);            
				if (NULL != lpBuffer)            
				{            
					StaticBuffer = lpBuffer;

				}
			}    
		}

		FreeLibrary(hLibrary);
	}
	MessageBox(NULL,(char*)StaticBuffer,NULL,NULL);
}

Wenn ich die Funktion allerdings aufrufe bekomme ich eine Fehlermeldung:"Speicherverletzung an position XXXX...."
Diese Fehlermeldung bekomme ich nicht wenn ich FreeLibrary weglasse. Dann funktionieret alles. Allerdings bekomme ich dann im weiteren Programmverlauf (Wenn ich das FreeLibary weglasse) folgende Fehlermeldung:
"Haltepunkt im Programm... , Beschädigung des Heaps, Probelm bei geladener dll".

Nun meine Frage wie kann ich die Resource in einen andren Buffer laden und den zur laufzeit zu behalten. D.h. dass ich FreeLibrary trotzdem noch benutzen kann der buffer sich aber nicht leert.

Danke für eure hilfe!

mfg,
fastkiller
 
Zuletzt bearbeitet von einem Moderator:
Zurück