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 上”!是否和接口函数有关呢?
请高手帮忙指点!!!

解决方案 »

  1.   

    在VC中接口名为ILocatePtr
          接口函数为 BOOL SetPicture(BYTE *pBuf)这句话我没有弄明白,你说的接口是什么含意的,看你说的样子很像是一个Com对象的接口。但是,对于Com对象的成员函数又不是这样调用的,我有点莫名其妙的。你说的接口函数什么意思?是生成这个接口的函数?如果这样,PBuf可能的含义很多,既然你写的DLL你怎么不知道是什么含义呢?C当中* Byte等同于Delphi中Pointer.
      

  2.   

    dll是别人写的,dll里函数的调用方式也不需要谈到什么接口的,我只是感到迷惑。我想可能首先的第一个问题是无法定位函数的问题。