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!!请大家帮帮我~~~~~~~~~~谢谢
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!!请大家帮帮我~~~~~~~~~~谢谢
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;
var
pDPts:array[0..11] of double;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;
pDouble就是指针
var
pDPts:array[0..11] of double;
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[0], 12 );
end;