调用OCX中函数时,参数传递问题,急!(300)

  • 主题发起人 主题发起人 张辉明
  • 开始时间 开始时间

张辉明

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要调用OCX中一个函数,该OCX用C++开发,函数声明如下:SetAreaPlcBud(short nIPCAMNum, short nArea ,short nPicSize, short *pbyArea,BOOL WriteORNot)在C++是这样调用:short byArea[500];SetAreaPlcBud(app->m_nowControl, m_nEDIT_PLCNUM,0,(short *)byArea ,true);用DELPHI的对导把该OCX导进来后,生成LIB函数声明如下:SetAreaPlcBud(nIPCAMNum: Smallint; nArea: Smallint; nPicSize: Smallint; var pbyArea: Smallint; WriteORNot: WordBool);我的问题是:这个pbyArea参数怎么传数呢?DELPHI中没有(short *)byArea这写法啊。我声明byArea 如下:byArea : array[0..499] of smallint;IPCAMSetAreaPlcBud ( i,narea,npicsize,@byArea[0],true) ;这样调用编译不过的,请问这个pbyArea参数我怎么写啊??急
 
byArea : array[0..499] of smallint;IPCAMSetAreaPlcBud ( i,narea,npicsize,@byArea,true)
 
一样编译不过: unsafe code '@ operator'
 
.....呃....看错了 应该直接传递byArea[0]或者你改OCX的定义,改成PPSmallint:^Smallint;.....pbyArea: PSmallint
 
后退
顶部