Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Crear una DLL con recursos y acceder desde una aplicación (https://www.clubdelphi.com/foros/showthread.php?t=80746)

Neftali [Germán.Estévez] 07-07-2006 10:29:34

Crear una DLL con recursos y acceder desde una aplicación
 
Basta con crear un fichero de recursos estandard de Delphi y añairlo a un proyecto de DLL.

Crea un archivo .RC como este (icons.rc):
Código:

BACK    BITMAP ".\back.bmp"
BARCODE BITMAP ".\barcode.bmp"
...

Lo compilas usando el programa brcc32 (desde la linea de comandos), por ejemplo puedes crear un BAT/CMD como este:
Código:

brcc32 icons.Rc > Errores.txt
Al compilar los recursos obtendrás un fichero llamado icons.res

Desde Delphi creas un nuevo proyacto desde File/New/Other/DLL Wizard
y donde pone {$R *.res} cambias eso por {$R ICONS.RES}
Compila, linka y en la DLL resultante ya tiene los iconos.

Una vez que tengas la DLL creada, en mi caso, por ejemplo con el nombre: ResDLL.dll, para recuperar los iconos haz lo siguiente:
(1) Crea una nueva aplicación de delphi.
(2) Coloca dos TImage y un botón.
(3) En el Onclick del botón coloca el siguiente código:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  DllHandle: THandle;
begin
  // Cargar la DLL (debe estar en el mismo directorio)
  DllHandle := LoadLibrary('.\ResDLL.dll');
  // Cargada correctamente?
  if DllHandle <> 0 then begin
    // proteccion
    try
      //Cargar los recursos desde la DLL
      Image1.Picture.Bitmap.Handle := LoadBitmap(DllHandle, 'BACK');
      Image2.Picture.Bitmap.Handle := LoadBitmap(DllHandle, 'BARCODE');
    finally
      // Liberarla
      FreeLibrary(DllHandle)
    end;
  end
  else begin
    // Error
    ShowMessage(SysErrorMessage(GetLastError))
  end;
end;

Una vez compilado si la DLL y el EXE están en el mismo directorio deberían funcionar.


La franja horaria es GMT +2. Ahora son las 15:00:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi