开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1897|回复: 8
收起左侧

[已解决] 取字节集(),第三个参数是不应该是参考!

[复制链接]
结帖率:64% (52/81)
发表于 2015-9-20 18:44:15 | 显示全部楼层 |阅读模式   广东省广州市
本帖最后由 萧阳天 于 2015-9-27 19:19 编辑


  • 模块版本:V5.22
  • 所用系统:Win 7 64位
  • 命令名称:注册表操作.取字节集()
  • BUG描述:参数不应该以参考方式传递
  • 我的联系QQ:990230510
原帖:http://bbs.125.la/thread-13829137-1-1.html



@萧阳天 你先别急着删除,你倒是先回答我先,那个参考勾上有什么意义?御风软件是模块开发者,人家都说了,那里只需要传值就可以了,不需要传址,而且那个帖子有两个易友都是支持的,让我觉得你在针对我?很多次我反馈都没被你采纳!!!就比如那个取不重复随机数!
发表于 2015-11-4 03:00:21 | 显示全部楼层   广东省惠州市
他取字节集 参数三填了4  这是无意义 而这4提供的非指针  你又在配置选项中勾选了 严格的参数参考传递检查所以会提示 XXXXXXXX所提供的地址无法传递过去
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2015-9-29 13:05:54 | 显示全部楼层   北京市北京市
好吧,学习了
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)
发表于 2015-9-21 15:13:38 | 显示全部楼层   香港特别行政区湾仔区
这模块不是开源的吗 - - 自己改了,编译一份用就是了。
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)
发表于 2015-9-21 12:10:44 | 显示全部楼层   广东省东莞市
每位易友对精易做出贡献,都是感激的,并非针对某人;
首先咱们先分析下;
注册表操作->取字节集 方法参数类型及调用的API
    参数1和参数2 这两个参数都好理解,至于参数3明明是输出型参数【带参返回】不勾选参考传递地址过去,子程序执行完毕回收堆,传过去的变量返回将会是零。
调用API
  1. LONG WINAPI RegQueryValueEx(
  2.   _In_        HKEY    hKey,
  3.   _In_opt_    LPCTSTR lpValueName,
  4.   _Reserved_  LPDWORD lpReserved,
  5.   _Out_opt_   LPDWORD lpType,
  6.   _Out_opt_   LPBYTE  lpData,
  7.   _Inout_opt_ LPDWORD lpcbData
  8. );
复制代码

lpType为输出型可选参数
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 5 天

发表于 2015-9-20 22:32:15 | 显示全部楼层   江西省景德镇市
源码都发了,自己改改把,极少数人去勾选这个功能,压根不影响什么。
回复 支持 反对

使用道具 举报

发表于 2015-9-20 21:15:57 | 显示全部楼层   广东省佛山市
DLL提供的函数 不像子程序中有参数"可空"这选项 一定要提供参数 所以说一些DLL参数参考传址 有些内容没必要取了 随便填个无效指针给他 不用在用个变量给他存放起来 你非要勾选这个严格参数参考传递的话 我相信唯有你自己写自己的模块了!   就像检查死循环这个命令一样  有时候为了方便有些人直接用死循环判断只要你控制的好在判断好了在跳出循环即可  这些选项只是帮你检查下代码哪里出现怎样的问题 提示你是否需要修改而已  熟悉之后基本上都用不着勾选
回复 支持 反对

使用道具 举报

发表于 2015-9-20 20:37:55 | 显示全部楼层   广东省佛山市
本帖最后由 453407561 于 2015-9-20 21:00 编辑

还有我解答你那贴:取字节集(),第三个参数是不应该是参考看图吧!
如果你非要纠结这个 严格的参数参考传递 的问题 那唯有你自己修改模块源码!


QQ截图20150920210145.jpg
回复 支持 反对

使用道具 举报

发表于 2015-9-20 20:36:58 | 显示全部楼层   广东省佛山市
看了下源码 取字节集中 调用了API:RegQueryValueExA来获取注册表值 来看下DLL说明吧
.DLL命令 RegQueryValueExA, 整数型, "advapi32.dll", "RegQueryValueExA", 公开, _注册表_取值获取一个项的设置值  零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
    .参数 hKey, 整数型, , 一个已打开项的句柄,或者指定一个标准项名
    .参数 lpValueName, 文本型, , 要获取值的名字
    .参数 lpReserved, 整数型, , 未用,设为零
    .参数 lpType, 整数型, 传址, 用于装载取回数据类型的一个变量
    .参数 lpData, 字节集, 传址, 用于装载指定值的一个缓冲区
    .参数 lpcbData, 整数型, 传址, 用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数;

  
  • 关闭
  • [url=]上传图片[/url]
  • [url=]相册图片[/url]
  • [url=]网络图片[/url]


参数:lpType(用于装载取回数据类型的一个变量)  这是取数据类型的所以要传址也非传值 也就是我们的取字节集的参数三:类型
而你提到模块源码中  注册表操作.DWORD值   取二进制值 取多字符串值 等等...   他又调用了这个 ”取字节集”   

  
子程序名返回值类型公开备 注
取DWORD值整数型 [REG_DWORD]
参数名类 型参考可空数组备 注
项名称文本型如:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
键名文本型如:3600
返回 (取字节集数据 (取字节集 (项名称, 键名, 4), #整数型, ))

他取字节集 参数三填了4  这是无意义 而这4提供的非指针  你又在配置选项中勾选了 严格的参数参考传递检查所以会提示 XXXXXXXX所提供的地址无法传递过去






QQ截图20150920203516.bmp
QQ截图20150920203215.bmp
回复 支持 反对

使用道具 举报

发表于 2015-9-20 20:34:45 | 显示全部楼层   广东省佛山市
看了下源码 取字节集中 调用了API:RegQueryValueExA来获取注册表值 来看下DLL说明吧
.DLL命令 RegQueryValueExA, 整数型, "advapi32.dll", "RegQueryValueExA", 公开, _注册表_取值获取一个项的设置值  零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
    .参数 hKey, 整数型, , 一个已打开项的句柄,或者指定一个标准项名
    .参数 lpValueName, 文本型, , 要获取值的名字
    .参数 lpReserved, 整数型, , 未用,设为零
    .参数 lpType, 整数型, 传址, 用于装载取回数据类型的一个变量
    .参数 lpData, 字节集, 传址, 用于装载指定值的一个缓冲区
    .参数 lpcbData, 整数型, 传址, 用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数;

  
  • 关闭
  • [url=]上传图片[/url]
  • [url=]相册图片[/url]
  • [url=]网络图片[/url]


参数:lpType(用于装载取回数据类型的一个变量)  这是取数据类型的所以要传址也非传值 也就是我们的取字节集的参数三:类型
而你提到模块源码中  注册表操作.DWORD值   取二进制值 取多字符串值 等等...   他又调用了这个 ”取字节集”   

  
子程序名返回值类型公开备 注
取DWORD值整数型 [REG_DWORD]
参数名类 型参考可空数组备 注
项名称文本型如:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
键名文本型如:3600
返回 (取字节集数据 (取字节集 (项名称, 键名, 4), #整数型, ))

他取字节集 参数三填了4  这是无意义 而这4提供的非指针  你又在配置选项中勾选了 严格的参数参考传递检查所以会提示 XXXXXXXX所提供的地址无法传递过去






回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表