相关疑难解决方法(0)

将数据从DLL传递到Application的问题

关于如何在我的场景中正确使用Pointers,我有点疑惑.我有一个DLL,里面有一些嵌入式资源.我在这个DLL中公开了一个函数,它将其中一个资源的二进制数据传递回其调用应用程序.在这种情况下,我嵌入了一个JPG图像文件.我的DLL确实将文件正确加载到资源流中.然而,从那里,将它传回应用程序变得混乱.

这是我的DLL代码(加载并命名了JPG SOMERESOURCE):

library ResDLL;

{$R *.dres}

uses
  System.SysUtils,
  System.Classes,
  Winapi.Windows;

{$R *.res}

function GetResource(const ResName: PChar; Buffer: Pointer;
  var Length: Integer): Bool; stdcall;
var
  S: TResourceStream;
  L: Integer;
  Data: array of Byte;
begin
  Result:= False;
  try
    S:= TResourceStream.Create(HInstance, UpperCase(ResName), RT_RCDATA);
    try
      S.Position:= 0;
      L:= S.Size;
      Length:= L;
      SetLength(Data, L);
      S.Read(Data[0], L);
      Buffer:= @Data[0];
      Result:= True;
    finally
      S.Free;
    end;
  except
    Result:= False;
  end;
end;

exports
  GetResource;

begin
end.
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序的代码(只有一个TBitBtnTImage):

function GetResource(const ResName: PChar; Buffer: Pointer; …
Run Code Online (Sandbox Code Playgroud)

delphi binary dll

4
推荐指数
2
解决办法
2064
查看次数

标签 统计

binary ×1

delphi ×1

dll ×1