hnaumath
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2002-08-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1459回复:12

这个问题,你一定知道怎么解决!(因为我是菜菜鸟)

楼主#
更多 发布于:2002-08-01 18:10
自己定义的:
LONG MyfileDevice::HookRegEnumValue(HKEY hkey, DWORD iValue, PCHAR lpszValue, PDWORD lpcchValue, PDWORD lpdwReserved, PDWORD lpdwType, PBYTE lpbData, PDWORD lpcbData)
{
……
}

引用:
Hook_Device_Service_C(___RegEnumValue,HookRegEnumValue,&thunkREG);

Hook_Device_Service_C 的原型是:
PVOID Hook_Device_Service_C(DWORD Service, PVOID pHandler, HDSC_Thunk* pThunk)

出现的错误:
error C2664: \'LOCK_Hook_Device_Service_C\' : cannot convert parameter 2 from \'long (unsigned long,unsigned long,char *,unsigned long *,unsigned long *,unsigned long *,unsigned char *,unsigned long *)\' to \'void *\'

我不能改HookRegEnumValue的返回值类型,请问可有其它解决办法?

[编辑 -  8/2/02 by  hnaumath]
hnaumath
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2002-08-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-01 21:18
怎么就没人理我???
分数太少???
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-01 22:16
HookRegEnumValue是一个成员函数,调用函数应用
HookRegEnumValue(...)
而且, PVOID 是一个指针,应将返回值赋给一个变量,再传递地址
如:long hr=HookRegEnumValue(...);
    Hook_Device_Service_C(___RegEnumValue,&hr,&thunkREG);
hnaumath
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2002-08-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-01 22:56
楼上的兄弟,不行呀!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-08-02 10:21
Hook_Device_Service_C(___RegEnumValue, (PVOID)HookRegEnumValue,&thunkREG);
强制类型转换 :(
hnaumath
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2002-08-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-02 15:48
谢谢,我已经试了,不行得
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-08-02 17:15
没有看仔细。
是要给个handle啊,不是function指针!
先得到handle
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-08-02 17:29
HookRegEnumValue函数当然应返回一个句柄
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2002-08-02 17:59
如果是返回handle。
就这样Hook_Device_Service_C(___RegEnumValue, (PVOID)&yourhandle,&thunkREG);
hnaumath
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2002-08-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-08-02 18:47
各位老大,
PVOID 就是 void *
大虾们请多想办法,帮我搞定,小生感激 @ @  !
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-08-02 20:09
long yourhandle = HookRegEnumValue(...);
Hook_Device_Service_C(___RegEnumValue, (PVOID)&yourhandle,&thunkREG);

前提是HookRegEnumValue返回的确实是你要的handle
HookRegEnumValue是干什么的?
hnaumath
驱动牛犊
驱动牛犊
  • 注册日期2002-07-11
  • 最后登录2002-08-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-08-02 20:27
我怎样给分?
顺便问一下,有了 *.VXD 以后,我该怎样用它???


[编辑 -  8/2/02 by  hnaumath]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2002-08-03 14:29
建议在论坛上找写文章看看先。
比如孙喜明翻译的《Windows VxD权威指南》(差不多是这个名字)。
游客

返回顶部