首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

小弟刚接触到Delphi,关于调用DLL中遇到的有关问题请大家赐教~

2012-02-22 
小弟刚接触到Delphi,关于调用DLL中遇到的问题请大家赐教~~~VC++的DLL文件中的代码为:externC __declspec

小弟刚接触到Delphi,关于调用DLL中遇到的问题请大家赐教~~~
VC++的DLL文件中的代码为:
extern   "C "   __declspec(   dllexport   )   void   MarkPoints(   double*   pDPts,   int   iPtCount   )  
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CLsrEllipseApp   *pApp   =   (   CLsrEllipseApp*   )AfxGetApp();
pApp-> MarkPoints(   pDPts,   iPtCount   );
}
我在Delphi中这样使用的,但编译时出了问题;
procedure   TMainInterface.Button1Click(Sender:   TObject);
var
  pDPts:array[0..11]   of   double;
  pDouble:^double;

    type   MarkPoints=procedure   (pDouble:double;   iPtCount:integer);cdecl;


begin

      pDPts[0]:=1;
      pDPts[1]:=2;
      pDPts[2]:=3;
      pDPts[3]:=4;
      pDPts[4]:=5;
      pDPts[5]:=6;
      pDPts[6]:=7;
      pDPts[7]:=8;
      pDPts[8]:=9;
      pDPts[9]:=10;
      pDPts[10]:=11;
      pDPts[11]:=12;

pDouble   :=   @pDPts;
MarkPoints(   pDPts,   12   );

  end;
错误信息:
expected   but   ', 'found!!


请大家帮帮我~~~~~~~~~~谢谢

[解决办法]
procedure TMainInterface.Button1Click(Sender: TObject);
var
pDPts:array[0..11] of double;

type MarkPoints=procedure (pDPts: PDouble; iPtCount: Integer); cdecl;

begin
pDPts[0]:=1;
pDPts[1]:=2;
pDPts[2]:=3;
pDPts[3]:=4;
pDPts[4]:=5;
pDPts[5]:=6;
pDPts[6]:=7;
pDPts[7]:=8;
pDPts[8]:=9;
pDPts[9]:=10;
pDPts[10]:=11;
pDPts[11]:=12;

MarkPoints(@pDPts, 12);
end;

[解决办法]
定义有错误,type MarkPoints=procedure (pDouble:^double; iPtCount:integer);stacall;
pDouble就是指针
[解决办法]
MarkPoints是类型不是方法

type MarkPoints=procedure (pDPts: PDouble; iPtCount: Integer); cdecl;

改称

MarkPoints: procedure (pDPts: PDouble; iPtCount: Integer); cdecl;

热点排行