在消息处理时有这样的需求,
Msg.LParam为一个指针的指针(vc的dll),我需要将这个值赋值为一个文件的内存地址,然后将Msg.result赋值这个内存的size。前面这个我做得不对,请指教!//加载至内存
procedure LoadMem;
var
M: TMemoryStream;
begin
M := TMemoryStream.Create(Self);
try
M.LoadFromFile('d:\XXX.jpg');
M.Position := 0;
GetMem(_PubP^, M.Size);
M.ReadBuffer(_PubP^, M.Size);
_PubSize := M.Size;
finally
FreeAndNil(M);
end;
end;
//消息赋值
type PInt = ^Integer;
PPInt = ^PInt;
var
APPInt: PPInt;
begin
APPInt := PPInt(Msg.LParam);
APPInt^^ := _PubP; /////////////这个地方好像错了!!!
Msg.Result := _PubSize;
end;
Msg.LParam为一个指针的指针(vc的dll),我需要将这个值赋值为一个文件的内存地址,然后将Msg.result赋值这个内存的size。前面这个我做得不对,请指教!//加载至内存
procedure LoadMem;
var
M: TMemoryStream;
begin
M := TMemoryStream.Create(Self);
try
M.LoadFromFile('d:\XXX.jpg');
M.Position := 0;
GetMem(_PubP^, M.Size);
M.ReadBuffer(_PubP^, M.Size);
_PubSize := M.Size;
finally
FreeAndNil(M);
end;
end;
//消息赋值
type PInt = ^Integer;
PPInt = ^PInt;
var
APPInt: PPInt;
begin
APPInt := PPInt(Msg.LParam);
APPInt^^ := _PubP; /////////////这个地方好像错了!!!
Msg.Result := _PubSize;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货