十万个为什么 发表于 2021-8-23 18:35:21

大漠插件注册VIP返回0的原因分析

本帖最后由 十万个为什么 于 2025-2-6 16:47 编辑

大漠插件注册VIP返回0的原因分析
返回0和大漠跟注册码没有关系.需要自己排查返回0的电脑是否调用dll文件成功.建议通过Ver命令来判断电脑调用dll文件是否成功.成功会输出大漠版本号如7.2450.系统没有调用dll文件成功则会输出空版本号

如图所示。易语言调用大漠插件。利用reg来注册VIP。第一个参数为注册码。第二个为附加码

其中注册码和附加码全部填写正确。注册返回为1时表示注册成功
经过调试我们发现返回为0
对照大漠老的帮助文档发现0为未知错误



经排查。返回0的原因为。大漠调用之前没有创建对象。
如下图所示。创建对象被注释掉了。因此大漠插件返回0


第二种返回0的情况为根本没有调用大漠成功这时我们可以通过ver调试输出大漠版本号来判断是否调用成功。如果能正确输出版本号。表示调用dm.dll成功。如果输出的版本号为空。则表示调用dm.dll根本没有成功.。
此时如果注册vip则返回0
没有调用dm.dll成功的原因可能是还有的新手居然发软件给别人在别人电脑根本没把dm.dll文件注册到系统里调用.

1.如果你是把dm.dll注册到系统注册表调用.则需要用regsvr32 dm.dll将dll注册到系统里.regsvr32用于在Windows系统中注册dll regsvr32就相当于注册大漠到系统那个bat命令,可以百度了解.如图所示.第一行运行命令就是将dm.dll注册到系统,如果你代码里有regsvr32 dm.dll可能是编程软件没有管理员权限.可以右键启动易语言在易语言上点击打开源码.来执行.

2,如果你的程序是免注册到系统调用dll文件.请检查免注册到系统的代码是否正确.请通过ver命令来输出版本号看看.如果注册到系统是可以输出大漠版本号的.如果注册到系统失败则版本号为空.这时注册VIP肯定为0.请通过ver命令来输出版本号看看.如果注册到系统成功是可以输出大漠版本号的.如果注册到系统失败则版本号为空.这时注册VIP肯定为0.

3,
不要释放大漠对象.如
dm.释放() ' 释放对象
如果释放是在程序将要关闭时释放.而不是提前释放.释放相当于把创建对象释放掉了.所以在下面注册调用Reg也是返回0.相当于没有创建对象.

4.如果系统没有管理员也可能导致调用DLL不成功这时我们去注册VIP.版本号为空也会导致0
参考负2原因https://www.eyy8.vip/thread-2969-1-1.html





建议看看这个注册调用例子源码 https://www.eyy8.vip/thread-3613-1-1.html








一决高下 发表于 2022-3-19 21:04:27


楼主太厉害了!楼主,我爱你!我觉得易语言吧真是个好地方!

Iced 发表于 2023-8-8 20:52:19


论坛不能没有像楼主这样的人才啊!我会一直支持易语言吧。
页: [1]
查看完整版本: 大漠插件注册VIP返回0的原因分析