关于如何在我的场景中正确使用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)
这是我的应用程序的代码(只有一个TBitBtn和TImage):
function GetResource(const ResName: PChar; Buffer: Pointer; …Run Code Online (Sandbox Code Playgroud)