在delphi7中使用vc编写的一个ocx控件,注册并导入这个控件后,发现有一个接口函数InputData,它是要将数据缓冲区的指针,和缓冲区数据长度传给这个函数,原本是:long InputDate(long *plDate, long lDataLen);//plData—指向缓冲区的指针,lDateLen—缓冲区的长度。当我将该控件导入到delphi中后,这个接口函数的参数就变成下面类型:InputVideoData(var pData:Integer,lDataLen:Integer):Integer;请教一下,我如何将缓冲区的指针(Array of byte或TStream)传给pData呢?或者有其它什么方法解决呢?谢谢!
解决方案 »
- 50分求救cxgrid高手,我在窗体有若干个cxgrid,怎么判断当前焦点是哪个?
- 各位高手,是否也遇到ADOBlobstream流操作的以下错误??
- 请问为什么这样不能够把文件复制目的地
- 用DELPHI实现CMI订购单报文
- 我原来写得程序,当我在打开时为什么会自动关闭delphi,
- ★★★还是关于那个特殊的for循环!你们说的不对!!这是答案,看看吧!!
- 关于查询
- 谁有fastreport2.44的中文文档?
- 请问:Indy控件有没有基于ftp协议的文件断点上传,下载功能啊
- 有谁知道Delphi6中日期期在SQL中的前导符??
- 请教大家,为什么mdi子窗体会显示主窗体上的edit控件
- 请问Delphi 2007 有没有MAC OS 风格的界面控件?
pData: integerTStream.writeBuff(pData,sizeof(integer));
var
pData: integer TStream.ReadBuff(pData,count);然后在调用InputData(var pData:Integer,lDataLen:Integer):Integer;可以吗?
InputData(pData,count);
写到pData里以后,可以看一下pData里的数据!
调用InputData(var pData:Integer,lDataLen:Integer)不是用返回值吗?
跟据定义的返回值来判断正确与否.
var
pData: integer ;然后将流中的数据读到写入pData:
TStream.ReadBuff(pData,count); 最后将pData传递给InputData(var pData:Integer,lDataLen:Integer):
InputData(pData,lDataLen);我不明白将pData定义成integer型,pData也可以像数组一样使用吗?请指教!!!
var pData:Integer,lDataLen:Integer;其实 ldataLen 的长度应该是sizeOf(integer)=4;
在32位操作系统中这是个固定的值!
根据这个看一下.如说得不对请大家指正!
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
i := 10000;
ShowMessage('i的大小'+inttostr(sizeof(i)));
ShowMessage('Integer大小:'+ IntToStr( SizeOf(Integer)));
end;
//plData—指向数据缓冲区的指针
//lDateLen—缓冲区的长度。 当我将该控件导入到delphi中后,这个接口函数的参数就变成下面类型: InputData(var pData:Integer,lDataLen:Integer):Integer;发现参数pData由“long *plDate”变成了“var pData:Integer”,就不知道如何处理了。我用下面的方法能实现吗?请指教!非常谢谢!procedure TFormMain.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
pData: integer ;
lDataLen:Integer;
begin
lDataLen:=AData.Size/4; //接收流的长度
AData.ReadBuffer(pData,lDataLen);//从流中读出全部数据
InputData(pData,lDataLen); //将数据传给InputData处理
end ;
InputData(pData,lDataLen);
AData.ReadBuffer(pData,lDataLen);