阅读:2903回复:12
我在做一个基于usb客户驱动的delphi应用程序.
usb客户驱动已经写好.
用delphi操作时,重启频繁(w2k) 不知是否应用编程的缘故? (有一个VC的例子,我摹仿该例制作的 delphi应用程序.但是很不稳定.我看了 看,一样是createfile/closehandle/cancelIO,都是 api,参数也大致相同[类型按照语言的不同稍有调整]) |
|
最新喜欢:abei11 |
沙发#
发布于:2001-06-15 19:34
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2001-06-16 10:37
那个VC的例子稳定吗?
|
|
|
地板#
发布于:2001-06-16 17:11
tiyi:
能否将那个VC例子传给我? hjz169@263.net 谢谢! |
|
地下室#
发布于:2001-06-17 14:02
vc++的例子是稳定的.他将usb操作部分封装成一个类.
我模仿其结构用delphi封装成一个对象.应该是没有差别的. 我现在比较郁闷. re:Holly ,实在抱歉.商业代码. |
|
5楼#
发布于:2001-06-18 08:43
在哪里找到的VC++例子,不要求提供源代码,只需提供信息就行了。
email: xjtt2000@163.net |
|
|
6楼#
发布于:2001-06-18 09:25
[QUOTE]原本由 tiyi 发表
[B]vc++的例子是稳定的.他将usb操作部分封装成一个类. 我模仿其结构用delphi封装成一个对象.应该是没有差别的. 我现在比较郁闷. re:Holly ,实在抱歉.商业代码. [/B][/QUOTE] 你看看C的类有没有用多线程技术。 |
|
|
7楼#
发布于:2001-06-18 12:33
该例子未使用多线程..
现在遇到一个问题.. 就是用delphi模仿vc取devicepath 死活取不到.问题如下: SetupDiGetInterfaceDeviceDetail,我死活取不出devicePath,源码如下: --------------------------------------------------------------- var hardwareDeviceInfo : HDEVINFO ; functionClassDeviceData : PSPDeviceInterfaceDetailData ; predictedLength : Dword ; requiredLength : Dword ; deviceInfoData : _SP_DEVICE_INTERFACE_DATA ; devName : string ; const LINK_GUID_V: TGUID = '{CF3C6FB0-AC22-4650-9380-3204C8DF9EB6}'; LINK_GUID : PGUID = @LINK_GUID_V ; begin hardwareDeviceInfo := SetupDiGetClassDevs ( Link_GUid, nil, // Define no enumerator (global) 0, // Define no (DIGCF_PRESENT or // Only Devices present DIGCF_INTERFACEDEVICE)); // Function class devices. deviceInfoData.cbSize := sizeof (_SP_DEVICE_INTERFACE_DATA); if (SetupDiEnumDeviceInterfaces (hardwareDeviceInfo, nil, // We don't care about specific PDOs Link_GUID^, 0, deviceInfoData)) then begin SetupDiGetInterfaceDeviceDetail( HardwareDeviceInfo, @DeviceInfoData, nil, // probing so no output buffer yet 0, // probing so output buffer length of zero @requiredLength, nil); // not interested in the specific dev-node predictedLength := requiredLength; functionClassDeviceData := AllocMem(predictedLength); functionClassDeviceData.cbSize := sizeof (_SP_DEVICE_INTERFACE_DETAIL_DATA_); if (not SetupDiGetInterfaceDeviceDetail ( HardwareDeviceInfo, @DeviceInfoData, functionClassDeviceData, predictedLength, @requiredLength, nil)) then begin freeMem(functionClassDeviceData); exit; end; devName := functionClassDeviceData.DevicePath ; ----------------- 得到的DevicePath是'\',但是应该得到GUID合并起来的一些字符才对.... GUID没有错.请高手点拨!!! |
|
8楼#
发布于:2001-06-18 14:13
[QUOTE]原本由 tiyi 发表
[B]usb客户驱动已经写好. 用delphi操作时,重启频繁(w2k) 不知是否应用编程的缘故? (有一个VC的例子,我摹仿该例制作的 delphi应用程序.但是很不稳定.我看了 看,一样是createfile/closehandle/cancelIO,都是 api,参数也大致相同[类型按照语言的不同稍有调整]) [/B][/QUOTE] 客户驱动程序可否发给我?hora@163.net |
|
9楼#
发布于:2001-06-19 11:56
1)delphi问题业已暂时解决
2)客户驱动用windriver生成. |
|
10楼#
发布于:2001-06-21 14:35
可否也把你的客户驱动程序发给我,mmh_han@163.com
THANKS! |
|
|
11楼#
发布于:2003-02-18 14:49
能否劳驾给份程序参考,我正在头痛不以
|
|
12楼#
发布于:2003-05-24 12:01
你好!
我也在作这部分工作,但预见的问题不是你这部分的,我再读数据时遇见了一些困难,我也是那delphi作的,我们可以交流一下吗?能帮我解决读数据的问题,程序给你也无所谓。 qq:121144437 discoveryer3000@yahoo.com.cn |
|