2004. május 4., kedd

How to load a DLL from a resource file and save it to disk


Problem/Question/Abstract:

Is it possible to copy a DLL into my own executable using the IDE only for exporting it after in my program? For example, I create an executable Test.exe and in the IDE I want to attach a resource that contains the DLL. And when my program is running I can export this resource to put a file on my hard disk. Is there a way to do that?

Answer:

Create a file called "mydllres.rc". Edit it and insert the line MYDLL RT_RCDATA "Mydll.dll". Then call the Borland compiler for resouces (you may need to adjust the paths) with BRCC32 mydllres.rc .

This will produce a output file called mydllres.res. Under the implementation header in the main unit add the following: {$R mydllres.res}. This will add the resource to the project.

The following procedure will save it to a file:

procedure savedll;
var
  myres: TResourceStream;
begin
  myres := TResourceStream.Create(hInstance, PChar('MYDLL'), RT_RCDATA);
  myres.SaveToFile(ExtractFilepath(Application.exename) + 'mydll.dll');
  myres.destroy;
end;

Nincsenek megjegyzések:

Megjegyzés küldése