Zasoby w DLL - problemy

0

Witam, chciałem dołączyć plik z zasobami do DLL;ki i pozniej w programi korzystać z tych zasobów, niestety nie obyło się bez problemów. Czytałem artykuły na stronie, ale nadal nie chce sięm kompilowć mój program, który ma postać taką

unit frmMain;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    lbl1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
  var
    DLL:THandle;
    Buff:array[1..255] of PAnsiChar;
  begin
    DLL := LoadLibrary('ZasobyDLL.dll');
    LoadString(DLL, 101, Buff, SizeOf(Buff));
    lbl1.Caption := Buff;
    FreeLibrary(DLL);
  end;

end.

DLL-ka wygląda tak
```delphi
library ZasobyDLL;

{$R 'Tekst.res' 'Tekst.rc'}

uses
  SysUtils,
  Classes;

begin
end.

No i pliczek z zasobami

STRINGTABLE
BEGIN
	101, "Marek"
	102, "Łotocki"
END

Otrzymuje komunikat:

Incompatible types: Array and PAnsiChar
Incompatible types: String and Array

Dodam jeszcze że parcuje na Delphi 2005 Personal

0

Zamień

Buff:array[1..255] of PAnsiChar;

na

Buff:PChar;

I powinno działać ;-P

0
var
  Buff: array[0..255] of Char;

Reszta powinna działać ;)

0

Dzięki, ale głupota, z przyzwyczajenia dałem tablice od 1 zamiast od 0, teraz już śmiga jak trzeba. DZIĘKI WIELKIE !!!

0

Jeszcze może jedno pytanko dotyczące zasobów. Mianowicie źle mi wyświtla polskie znaki z napisów umieszczonych w zasobach.

0

W aplikacji okienkowej powinno działać bez problemów (i mi - zgodnie z teorią - działa), a w konsolowej musisz użyć funkcji:

CharToOem(buff, buff);
0

Pytań ciąg dalszy. Jak w DLL-ce wyciągnąć dane z zasobów do niej dołączonych. Chciałem użyć LoadString ale nie wiem w jakim module on jest.

0
pulkownik napisał(a)

Chciałem użyć LoadString ale nie wiem w jakim module on jest.
to wpisz w googlu albo F1 na niej naciśnij [glowa]

0

Jest taka przydatna zmienna, nazywa się HInstance...

1 użytkowników online, w tym zalogowanych: 0, gości: 1