--- Em delphi-br@yahoogrupos.com.br, "flavio_engcomp"
<[EMAIL PROTECTED]> escreveu
>
> como fazer para injetar uma dll em um programa? ja li a respeito na
> net mas ainda tenho muitas duvidas...
>
Isso é chamdo de Encapsulamento, onde um execultavél ao ser compilado 
inclui um arquivo .res que por sua vez tem outros aquivos da sua
escolha embutido dentro dele tornando um só na geração do binário(.exe).

//Monte um arquivo txt com informações semelhantes a essas:

FILE1DLL DLLFILE embarcar/FILE1.DLL
FILE2EXE EXEFILE embarcar/FILE1.EXE

//Execute no prompt do msdos ou no delphi Comando para gerar o arquivo
Embarcar.rc

WinExec('command.com /c BRCC32 Embarcar.rc', sw_Normal);

//apos a criação do .RES crie um projeto no delphi

unit fb_embedded;
{$R Embarcar.res}  //Arquivo com conteúdo encapsulado(arquivos para
embutir no .exe)
interface ...

//Função resposável por extrair os aquivos embutidos no .exe
procedure DesembarcaFile(Lbl, IdArq, PathFileDest: string);
var Res: TResourceStream;
begin
{$R Embarcar.RES} //Embarca arquivos ao compilar
  if not FileExists(PathFileDest) then
  begin
    Res := TResourceStream.Create(Hinstance, Lbl, pChar(IdArq));
    try
      Res.SavetoFile(PathFileDest);
    finally
      Res.Free;
    end;
  end;
end;

//Chamada da função
DesembarcaFile('dll_gds32', 'gds32.dll', 'c:\gds32.dll');

Responder a