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

delphi 数组操作,该怎么处理

2012-03-31 
delphi 数组操作我在用libusb_win32实现USB通信的过程中,调用函数usb_bulk_read,其原型如下:function usb_

delphi 数组操作
我在用libusb_win32实现USB通信的过程中,调用函数usb_bulk_read,其原型如下:
function usb_bulk_read(dev: pusb_dev_handle; ep: Integer; bytes: PChar; size, timeout: Integer): Integer; cdecl; external 'libusb0.dll' name 'usb_bulk_read';
  
调用过程是:ret:= usb_bulk_read(usbasp.handle, $82, @databuff[1],sizeof(databuff),5000);其中databuff是一个char型的数组,大小是512,但是不能正确读取数据,我估计是buff地址给错了,但是有不知道该怎么改,各位高手帮帮忙,指点一下!拜谢!

[解决办法]
@databuff[1],为什么从下标 1 开始呢
[解决办法]
ret:= usb_bulk_read(usbasp.handle, $82, @databuff[[color=#FF0000][/color]0],sizeof(databuff),5000);
[解决办法]
ret:= usb_bulk_read(usbasp.handle, $82, @databuff[0],sizeof(databuff),5000);
[解决办法]
function usb_bulk_read(dev: pusb_dev_handle; ep: Integer; bytes: PChar; size, timeout: Integer): 

DELPHI:
PChar: 这个参数用Char数组没有问题,是你的传的地址有问题,直接@databuff即可,(不需要加[1],在说加也只能是[0]而不是[1].这个和数组的动态和静态有关系,可以找一些资料看一下)。
其他都正确!

热点排行