阅读:1992回复:6
为什么用C++Builder6打不开设备。。。请教各位
DWORD Error;
GUID ClassGuid=RegSampleDevice_CLASS_GUID; m_hDevice=OpenByInterface(&ClassGuid,0,&Error); if(m_hDevice==INVALID_HANDLE_VALUE) Application->MessageBox(\"设备打不开\",\"错误\",MB_OK); 说明: OpenByInterface(&ClassGuid,0,&Error);为DriverWork 提供的例程,此段程序在VC中可用,不知为什么在C++Builder6中编译可通过。就是不能打开设备。 一个头两个大。。。。。 |
|
沙发#
发布于:2004-05-21 16:38
厉害!
多谢你了!!! |
|
板凳#
发布于:2003-10-22 15:57
旧问题刚去新问题又来了(没头了)
用C++Builder6 注册接口通知时: m_hInterfaceNotification = RegisterDeviceNotification( Handle,&filter, DEVICE_NOTIFY_WINDOW_HANDLE); 当编译器数据对齐方式为Quad Word(64位)时可以成功 但很不幸由于OpenByInterface(&ClassGuid,0,&Error)需要BYTE 对齐方式。。。(哇呀呀呀,气死我也,难道老天一定让我选择 VC不可)。 经过不断追求探索问题又解决了。修改DriverWork\\devintf.h 在开头加入#pragma option push -b -a1 -pc -A- 在结尾加入#pragma option pop 选择编译器数据对齐方式为Quad Word编译运行。 哇,整个世界都清净了,这就是我为什么要加它的原因了。 天气真好。 这两个问题捆饶我一个月了。与大家共勉 |
|
地板#
发布于:2003-10-21 16:13
哈哈哈 问题解决了(狂喜泪+流满面)
project选项->advanced complier->Data Alignment 选 Byte(大功一定告成) 祝贺 问题解决 and 神五上天 and 小日本蓝屏 |
|
地下室#
发布于:2003-10-08 11:57
我用符号链接名调通了,关于以上问题一个头三个大了。
求医问药 |
|
5楼#
发布于:2003-10-08 11:52
为什么要从新生成GUID?难道CB不认VC的GUID,这说不通呀。
|
|
6楼#
发布于:2003-10-07 18:08
在装cb的机器上,重新生成一个GUID试试
|
|