VC中写的 Actpicture.dll 在delphi中调用。在VC中接口名为ILocatePtr
接口函数为 BOOL SetPicture(BYTE *pBuf)
(pBuf我理解是指向byte的指针,不知道对否?)
--------------------------
在delphi中采用静态调用方式如下function SetPicture(var pBuf: pByte):Integer;stdcall;external 'Actpicture.dll';
...
var
pBitmapHeader: pBitmapInfo;
pBitmapImage : pByte;
HeaderSize : DWORD;
ImageSize : DWORD;
begin
GetDIBSizes(AmmeterBmp.Handle, HeaderSize, ImageSize);
GetMem(pBitmapImage, ImageSize);
try
if Boolean(SetPicture(pBitmapImage)) then
begin
showmessage('加载成功!')
end
else begin
showmessage('加载失败!');
end;
finally
FreeMem(pBitmapImage);
end; *****************************************
试了好几种方式均不行,包括声明为pointer等
结果要么是SetPicture(pBitmapImage)不对。
要么是提示“无法定位程序输入点SetPicture于动态链接库Actpicture.dll 上”!是否和接口函数有关呢?
请高手帮忙指点!!!
接口函数为 BOOL SetPicture(BYTE *pBuf)
(pBuf我理解是指向byte的指针,不知道对否?)
--------------------------
在delphi中采用静态调用方式如下function SetPicture(var pBuf: pByte):Integer;stdcall;external 'Actpicture.dll';
...
var
pBitmapHeader: pBitmapInfo;
pBitmapImage : pByte;
HeaderSize : DWORD;
ImageSize : DWORD;
begin
GetDIBSizes(AmmeterBmp.Handle, HeaderSize, ImageSize);
GetMem(pBitmapImage, ImageSize);
try
if Boolean(SetPicture(pBitmapImage)) then
begin
showmessage('加载成功!')
end
else begin
showmessage('加载失败!');
end;
finally
FreeMem(pBitmapImage);
end; *****************************************
试了好几种方式均不行,包括声明为pointer等
结果要么是SetPicture(pBitmapImage)不对。
要么是提示“无法定位程序输入点SetPicture于动态链接库Actpicture.dll 上”!是否和接口函数有关呢?
请高手帮忙指点!!!
接口函数为 BOOL SetPicture(BYTE *pBuf)这句话我没有弄明白,你说的接口是什么含意的,看你说的样子很像是一个Com对象的接口。但是,对于Com对象的成员函数又不是这样调用的,我有点莫名其妙的。你说的接口函数什么意思?是生成这个接口的函数?如果这样,PBuf可能的含义很多,既然你写的DLL你怎么不知道是什么含义呢?C当中* Byte等同于Delphi中Pointer.