找回密码
 加入
搜索
查看: 18177|回复: 70

[AU3基础] AuMFCompiler编译报错

 火.. [复制链接]
发表于 2017-3-25 14:58:15 | 显示全部楼层 |阅读模式
环境用的论坛里poker face前辈的3.3.14.2第四版

使用AFAN的MFCompiler处理,前期处理都已经结束,加入版权信息结束准备编译,然后编译器就报错了,提示Subscript used on non-accessible variable,还有一个提示是variable used without being declared关键还是Autoit3Wrapper爆出来的。

之前一直这样,但是都是通过手动编译迷惑完的XXX_MyMh.au3实现的。这次这个不仅迷惑完的不能运行,而且就算是手动编译完了还是会报错。纠结了唉~
发表于 2017-3-25 18:33:29 | 显示全部楼层
这种问题LZ这样提问基本是无解的。
说再多也远不如一份能重现问题的代码。最好是自行精简到最简化提问代码(:不要完整的功能,能重现问题即可,哪怕只有一行代码。但要保证代码能正常执行)
发表于 2017-3-26 06:59:04 | 显示全部楼层
先来占个位,手机打字太慢,等有空给大家上个使用教程
发表于 2017-3-26 06:59:08 | 显示全部楼层
先来占个位,手机打字太慢,等有空给大家上个使用教程
 楼主| 发表于 2017-3-27 08:46:44 | 显示全部楼层
回复 4# zpmc123


    你已经占了俩位置了。。。。。
 楼主| 发表于 2017-3-27 08:51:42 | 显示全部楼层
回复 2# afan


    Afan大神,关键是我已经说明了哇。

提示Subscript used on non-accessible variable,还有一个提示是variable used without being declared关键还是Autoit3Wrapper爆出来的。

哪怕只写一个msgbox都无法直接编译成功的啊~
发表于 2017-3-27 11:44:30 | 显示全部楼层
曾遇到过的问题,自己的解决方法是在备份里面找出来转一下编码保存,再编译
发表于 2017-3-27 12:40:23 | 显示全部楼层
回复  afan


    Afan大神,关键是我已经说明了哇。

提示Subscript used on non-accessible variab ...
sdlyfjx 发表于 2017-3-27 08:51



1,LZ是比较粗心的人啊,你的版本应该是 131738 前辈的,简单的复制都复制个错的……  
2,如果你很确定一句正常的MsgBox(0,'','')都无法编译,你可以试试原Acc的版本。
3,编译器一般会添加预编译信息,也可以贴出来看看。
4,上传你无法编译的 精简.au3 文件
发表于 2017-3-27 14:40:46 | 显示全部楼层
仅演示AuMFCompiler工具的部份功能   精简问题!

源码就不贴了,什么也没有,只有一个MSGBOX而已!



具体的看上面附件的视频过程!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-3-27 16:25:35 | 显示全部楼层
本帖最后由 tubaba 于 2017-3-27 16:28 编辑

回复 8# afan


    发现至少存在一处BUG,不管是MFCompiler还是AuMerger,如果脚本存在函数
Func _ArrayMaxIndex(Const ByRef $aArray, $iCompNumeric = 0, $iStart = -1, $iEnd = -1, $iSubItem = 0)
If $iCompNumeric = Default Then $iCompNumeric = 0
If $iStart = Default Then $iStart = -1
If $iEnd = Default Then $iEnd = -1
If $iSubItem = Default Then $iSubItem = 0
Local $iRet = __Array_MinMaxIndex($aArray, $iCompNumeric, $iStart, $iEnd, $iSubItem, __Array_GreaterThan)
Return SetError(@error, 0, $iRet)
EndFunc


__Array_GreaterThan这个函数被BAN掉了,目测是程序不能识别尾部不带括号组的函数调用

其实很早以前就发现某些脚本不能通过编译,但没查具体原因,今天看了此贴,又测试了一下.发现上面这个BUG
发表于 2017-3-27 16:58:39 | 显示全部楼层
本帖最后由 afan 于 2017-3-27 17:30 编辑

回复 10# tubaba


    这种语法在较高版本中才有,AuMFC甚至早于它开发。
这种情况很好解决,加入一行即可:
#AuMFCompiler_EssFuncs=__Array_GreaterThan

#Obfuscator_Ignore_Funcs=__Array_GreaterThan

鼠标悬停“整合模式>精简未用(推荐)”可看到提示,如果用过原始的Obfuscator就应该知道用处。具体对精简有无作用还看当时发布的版本是否支持,#Obfuscator_Ignore_Funcs 肯定是支持的。

如果加后精简没问题,但迷惑有问题,那是当时的版本还不支持。那样需将精简后正常运行的脚本加工下
发表于 2017-3-27 17:02:50 | 显示全部楼层
本帖最后由 afan 于 2017-3-27 17:07 编辑

AuMerger 精简时同样支持上述预编译,还可精简为
#AMF_EssFuncs=__Array_GreaterThan

BTW,发现问题可在原帖及时反馈,本人很乐意解决。基本上,人积极我积极,人不积极我更不会积极。
 楼主| 发表于 2017-3-28 09:00:19 | 显示全部楼层
回复 9# zpmc123


    看了冠西的视频,我觉得我还是会用的。。。  只不过我用了论坛里数字前辈的AU3,所以估计编译器不一样,导致无法编译的。冠西用的是那个版本的AU3啊~
发表于 2017-3-28 09:06:52 | 显示全部楼层
回复 12# afan


    恩,那可以把这个AuMerger更新下了
 楼主| 发表于 2017-3-28 09:08:21 | 显示全部楼层
回复 8# afan


    哈哈哈,并不是啦~   我说的poker face前辈就是你说的数字前辈,也就是131738,因为他的头像。。。。。是一个。。。扑克脸
问题大概已经找到了,虽然我没实验,应该是编译器的问题导致的。虽然我没有换一个试试。但是跟冠希哥的视频来看,应该就是编译器不一样了。

因为上次提问的时候说过最新的版本都支持,另外我以为都用的相同版本,所以我就没多想。



另外这个就是一个msgbox都不通过的例子。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-19 23:09 , Processed in 0.085247 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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