Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Crear una dll apartir de un .res (https://www.clubdelphi.com/foros/showthread.php?t=71089)

barakuda 30-11-2010 00:57:36

Crear una dll apartir de un .res
 
Hola, despues de buscar y buscar y probar y probar, joe parece la cancion :D
les tengo que preguntar. Veran mi idea es hacer una dll apartir de un fichero de recurso y el problema es que no se como llamarle, voy por pasos

creo una dll con el siguiente codigo

Código:

library dll;
 {$R xx.res}

begin
end.

donde naturalmente el xx.res es el fichero de recursos que contiene 2 string

Código:

0, 'hola'
1, 'Adios'

(puede que la estructura sea incorecta, lo hago de cabeza :rolleyes:)

hasta aki no problem...

hago una nueva aplicacion a la cual ciertos labels quiero que lea en la dll

y eh aqui el problema que no me salgo, si le digo

label10.Caption:=LoadStr(0);

me devuelve ... nada, eso lo entiendo ya que le digo que carge una cadena de un recurso que no existe y mi pregunta es como le digo que carge atraves de la dll el valor 0 en la label10.caption es decir que el caption de la label10 sea Hola o Adios

gracias de antemano y un saludo!!

ElKurgan 30-11-2010 09:58:25

yo normalmente lo hago asi:

Código Delphi [-]
 
procedure TForm1.Btn1Click(Sender: TObject);
var
  H: THandle;
  buf: array[0..1024] of char;
  res: integer;
  Cadena: string;
begin
  H := LoadLibrary(PAnsiChar(Libreria));
  if H >= 32 then
  try
    // 0 es el número de recurso; la otra cadena seria 1
    res := LoadString(H, 0, buf, SizeOf(buf));
    if res <> 0 then
      SetString(Cadena, buf, res)
    else
      Cadena := 'error';
    Edit1.Text := Cadena;
    Application.ProcessMessages;
  finally
    FreeLibrary(H);
  end;
end;

Seguro que hay formas mejores de hacerlo, pero a mi me funciona

Un saludo

barakuda 30-11-2010 18:56:29

gracias amigo, estudiare tu codigo

un saludo!!

ElKurgan 01-12-2010 07:55:06

Obviamente, se me olvidó comentar que PAnsiChar(Libreria) está cogiendo el valor de cadena de una variable del formulario, cuyo valor en algún momento toma el nombre de la DLL correspondiente.

Lo siento si esto ha podido despistar un poco

Saludos

barakuda 01-12-2010 19:09:36

na, tranqui ya m di cuenta gracias por tu ayuda

un saludo!!


La franja horaria es GMT +2. Ahora son las 11:11:04.

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