阅读:1009回复:5
大侠们看看我的程序为什么读取的都是 0 啊!!!
rt!
请用右键点击下载我的源程序 |
|
|
沙发#
发布于:2004-10-13 13:55
没问题啊,我读出来的都是255,你把我昨天给你的驱动的MYIRP改为
typedef struct _MYIRP { ULONG optcode; USHORT port; }MYIRP, *PMYIP; 重新编译一下,然后加载驱动后运行程序,结果都是0XFF=255 |
|
|
板凳#
发布于:2004-10-13 15:14
好像是不正确的 当我读 0x290 - 02a0 使用dos方式(有工具打开端口)显示的是 0x290 = -1 0x291 = -1 0x292 = -1 0x293 = -1 0x294 = -1 0x295 = 85(每次读取会增加,直到95) 0x296 = -1 0x297 = -1 0x298 = -1 0x299 = -1 0x2a0 = -1 而用驱动在我的机子是全0,在另一台上是全255 不知到底出了什么问题?请指点 |
|
地板#
发布于:2004-10-13 15:51
全255是正确的结果,因为这是HAL的返回结果
全0可能你还是用原来的MYIRP结构错误的驱动,所以传入HAL的端口为0 全-1是你的驱动没有加载成功,你应该先判断CREATEFILE的返回结果后再进行下一步操作. |
|
|
地下室#
发布于:2004-10-13 15:53
你可以在HAL的地方下断点看下,至于IN OUT指令的结果如何,只和特定机器有关了,不是我们能控制的.
|
|
|
5楼#
发布于:2004-10-13 16:13
先在这里感谢 wowocock
不过读出 -1 的是使用 _inp 函数,我用一个老外的工具打开了端口读写权限,现在单独测试两中方式一样了。 全255可能就是返回值类型是 UCHAR 的缘故。 不过用到其它程序中作大量输入输出就错误了,而用 _inp 一切正常。郁闷中…… |
|