我现在想用DELPHI把对EZUSB设备的打开和读写操作编成DLL的函数
我自己写的一个dll,现在老是出现:转着转着,突然机器就重启了
如果不用dll,直接在应用程序中用deviceiocontrol(...)那几个函数,都没有问题
改成dll就老是重启了 ,偶尔出现蓝屏,好像是说内存什么地址出错 ,多数情况是不打招呼就重启了
不知道哪位碰到过类似的问题没有?
是我的机器有问题,还是我的dll写的有问题?
我自己写的一个dll,现在老是出现:转着转着,突然机器就重启了
如果不用dll,直接在应用程序中用deviceiocontrol(...)那几个函数,都没有问题
改成dll就老是重启了 ,偶尔出现蓝屏,好像是说内存什么地址出错 ,多数情况是不打招呼就重启了
不知道哪位碰到过类似的问题没有?
是我的机器有问题,还是我的dll写的有问题?
var
PacketSize: WORD;
BufferData: array[0..63] of uchar;//我想一次性读64字节,放到这个数组里
nBytes: ulong;function ReadData(hDriver: THandle): boolean; stdcall;
var
bulkControl: BULK_TRANSFER_CONTROL;
i: integer;
begin
for i:= 0 to 63 do
BufferData[i]:= 0;
bulkControl.pipeNum:= 0;
PacketSize:= 64;
Result:= DeviceIoControl(hDriver,
IOCTL_Ezusb_BULK_READ,
@bulkControl,
SizeOf(BULK_TRANSFER_CONTROL),
@BufferData,
PacketSize,
nBytes,
nil);
end;function PullOut(iIndex: integer): Uchar; stdcall;//想在应用程序中通过这个函数
把数组的内容导出来,是不是不能这么干啊?
begin
result:= BufferData[iIndex];
end;