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

有关delphi的函数指针使用解决思路

2012-03-29 
有关delphi的函数指针使用初学delphi,碰到一个函数指针问题,始终编译不过,求大侠帮忙。frm1类中,定义type:t

有关delphi的函数指针使用
初学delphi,碰到一个函数指针问题,始终编译不过,求大侠帮忙。
frm1类中,定义type:
type
  TProcRecv = procedure(evtMsg: Byte;RcvBuf : PChar;ByteLen : Integer);

frm1类中定义public过程:
  procedure spcSendData(DatBuf:PChar; DatLen : Integer; pfnRcv : TProcRecv);

frm2中定义私有的接收Callback函数:
  procedure RcvCOMDat(evtMsg: Byte;RcvBuf : PChar;ByteLen : Integer);

frm2的一个子procedure中调用frm1的公用spcSendData()过程:
begin
//....
spcSendData(PChar(@byteArrBurnDat[0]),hexedtBurnData.DataSize,RcvCOMDat);
//...
end;

这个函数的调用目的就是发送一串数据时,注册一个回调函数给frm1,frm1发送处理流程结束后通过RcvCOMDat回调函数,把数据传递给frm2.
但是编译时,老是说spcSendData()函数的调用处:incompatible types:'regular procedure and method pointer',意思是说过程指针类型不兼容。哪位大侠指点一下,到底错在了什么地方?

多谢多谢。


[解决办法]
type
TProcRecv = procedure(evtMsg: Byte;RcvBuf : PChar;ByteLen : Integer);
改为
type
TProcRecv = procedure(evtMsg: Byte;RcvBuf : PChar;ByteLen : Integer) of object;

热点排行