qfzcx
驱动牛犊
驱动牛犊
  • 注册日期2004-10-13
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望87点
  • 贡献值1点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1727回复:14

请教 这几句程序的错误

楼主#
更多 发布于:2005-04-25 09:13
我定义了一个结构 当执行到这里时就 重起,哪里的错误 怎么正确定义
我的程序如下(一部分)在头文件
 typedef struct _JIEGOU
{
   int x;
   int y;
}JIEGOU;
在 device.cpp 中
 JIEGOU jiegou1;//定义一个结构变量 jiegou1
执行到下边这句就重起
(jiegou1).x=123;(jiegou1).y=232;(jiegou1).z=0;//给变量赋值
   *(JIEGOU*)(I.IoctlBuffer())=jiegou1;//我用deviceIoControl来取值
  这是什么原因呢 望高手们指教
liuyan4794
驱动牛犊
驱动牛犊
  • 注册日期2005-04-14
  • 最后登录2010-08-19
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-25 09:19
直接这样写不可以么?
I.IoctlBuffer()=jiegou1;
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-04-25 09:19
那里哪有z变量啊?。。。

还有啊,,这样使用不太好啊,,最好定义一个结构指针,,

JIEGOU *jiegou1;

jiegou1->x = 123;...................

jiegou1 = (JIEGOU *)I.IoctlBuffer();
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
qfzcx
驱动牛犊
驱动牛犊
  • 注册日期2004-10-13
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望87点
  • 贡献值1点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-25 09:52
to aiwadgj
  但我想从驱动程序传输据到应用程序 怎么写 直接把你的第三句程序到过来不行 *(JIEGOU*)I.IoctlBuffer()=*jiegou;
还是重起  
          郁闷啊!!!!!!

[编辑 -  4/25/05 by  qfzcx]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2005-04-25 10:33
调试你的驱动代码,看哪里的问题.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-04-25 10:52
to aiwadgj
  但我想从驱动程序传输据到应用程序 怎么写 直接把你的第三句程序到过来不行 *(JIEGOU*)I.IoctlBuffer()=*jiegou;
还是重起  
          郁闷啊!!!!!!

[编辑 -  4/25/05 by  qfzcx]


你怎么还这样写啊(*(JIEGOU*)I.IoctlBuffer()=*jiegou),,你跟我那样定义的写。


JIEGOU *jiegou1;

jiegou1 = (JIEGOU *)I.IoctlBuffer();


不过,重启好像也不是这里的原因,,你改改还不行的话,就调试吧。。。

酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-25 10:58
to aiwadgj
  但我想从驱动程序传输据到应用程序 怎么写 直接把你的第三句程序到过来不行 *(JIEGOU*)I.IoctlBuffer()=*jiegou;
还是重起  
          郁闷啊!!!!!!

[编辑 -  4/25/05 by  qfzcx]

我现在都忘了怎么做了,照我的垃圾贴抄一个,嘻嘻,现在我也是这样做
http://www.driverdevelop.com/forum/html_89958.html?1114397914
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
qfzcx
驱动牛犊
驱动牛犊
  • 注册日期2004-10-13
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望87点
  • 贡献值1点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-25 16:23
----------------------------------------------------------
你怎么还这样写啊(*(JIEGOU*)I.IoctlBuffer()=*jiegou),,你跟我那样定义的写。


JIEGOU *jiegou1;

jiegou1 = (JIEGOU *)I.IoctlBuffer();


不过,重启好像也不是这里的原因,,你改改还不行的话,就调试吧。。。
----------------------------------------------------
谢谢 各位高手的指导!
to  aiwadgj
我按你的方法做了这次没有重起。但是返回值不正确
再提个弱智的问题 你那样做我不明白?为什么我那样写不行呢?
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-04-25 18:05
----------------------------------------------------------
你怎么还这样写啊(*(JIEGOU*)I.IoctlBuffer()=*jiegou),,你跟我那样定义的写。


JIEGOU *jiegou1;

jiegou1 = (JIEGOU *)I.IoctlBuffer();


不过,重启好像也不是这里的原因,,你改改还不行的话,就调试吧。。。
----------------------------------------------------
谢谢 各位高手的指导!
to  aiwadgj
我按你的方法做了这次没有重起。但是返回值不正确
再提个弱智的问题 你那样做我不明白?为什么我那样写不行呢?


可以这么说吧。。

I.IoctlBuffer()返回值指向一个固定的地址了(可以理解为常量吧)

你为一个常量赋值,,会正确吗?

尤其是指针哦,,,那些没有初始化的指针,你知道指向哪里啊?

按你那样做法就是:为一个常量指针赋值了一个没有具体指向的指针,,并且进行操作你说对吗?,,这样做很容易蓝屏或者死机。。
的。。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
qfzcx
驱动牛犊
驱动牛犊
  • 注册日期2004-10-13
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望87点
  • 贡献值1点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-05-09 15:57
谢谢 各位高手的指点,我今天又试了几下,还是有错误。
  哪位能否给出个简单的例子??????我想在驱动程序中定义一个结构变量,然后从控制程序中得到读数。很简单啊。但我。。。。

[编辑 -  5/11/05 by  qfzcx]
qfzcx
驱动牛犊
驱动牛犊
  • 注册日期2004-10-13
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望87点
  • 贡献值1点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-05-11 19:59
怎么没人理我了,那位大哥能给个例子,(最好是完整的),高分相送,决不食言。求
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-05-12 09:56
怎么没人理我了,那位大哥能给个例子,(最好是完整的),高分相送,决不食言。求

我的垃圾贴看了吗?有源码啊!
里面结构,联合都有
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
qfzcx
驱动牛犊
驱动牛犊
  • 注册日期2004-10-13
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望87点
  • 贡献值1点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-05-12 10:09
老大,进不去啊,我早就试过怎么都进不去。
能否发到我的邮箱 qfzcx_sd@163.com
我是在驱动中定义一个结构,在应用程序中用DeviceIocontrol()得到结果,按aiwadgj老的的方法 我也没弄好。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2005-05-12 11:21
建议你用F3切换到C,汇编混合模式,看看哪条指令出的问题,把相应的内存,寄存器的数值都打出来看看.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-05-12 16:23
老大,进不去啊,我早就试过怎么都进不去。
能否发到我的邮箱 qfzcx_sd@163.com
我是在驱动中定义一个结构,在应用程序中用DeviceIocontrol()得到结果,按aiwadgj老的的方法 我也没弄好。
 

好,发个给你,收着... :D
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部