AuMFCompiler编译报错
环境用的论坛里poker face前辈的3.3.14.2第四版使用AFAN的MFCompiler处理,前期处理都已经结束,加入版权信息结束准备编译,然后编译器就报错了,提示Subscript used on non-accessible variable,还有一个提示是variable used without being declared关键还是Autoit3Wrapper爆出来的。
之前一直这样,但是都是通过手动编译迷惑完的XXX_MyMh.au3实现的。这次这个不仅迷惑完的不能运行,而且就算是手动编译完了还是会报错。纠结了唉~ 这种问题LZ这样提问基本是无解的。
说再多也远不如一份能重现问题的代码。最好是自行精简到最简化提问代码(:不要完整的功能,能重现问题即可,哪怕只有一行代码。但要保证代码能正常执行) 先来占个位,手机打字太慢,等有空给大家上个使用教程 先来占个位,手机打字太慢,等有空给大家上个使用教程 回复 4# zpmc123
你已经占了俩位置了。。。。。 回复 2# afan
Afan大神,关键是我已经说明了哇。
提示Subscript used on non-accessible variable,还有一个提示是variable used without being declared关键还是Autoit3Wrapper爆出来的。
哪怕只写一个msgbox都无法直接编译成功的啊~ 曾遇到过的问题,自己的解决方法是在备份里面找出来转一下编码保存,再编译 回复afan
Afan大神,关键是我已经说明了哇。
提示Subscript used on non-accessible variab ...
sdlyfjx 发表于 2017-3-27 08:51 http://www.autoitx.com/images/common/back.gif
1,LZ是比较粗心的人啊,你的版本应该是 131738 前辈的,简单的复制都复制个错的……
2,如果你很确定一句正常的MsgBox(0,'','')都无法编译,你可以试试原Acc的版本。
3,编译器一般会添加预编译信息,也可以贴出来看看。
4,上传你无法编译的 精简.au3 文件 仅演示AuMFCompiler工具的部份功能 精简问题!
源码就不贴了,什么也没有,只有一个MSGBOX而已!
具体的看上面附件的视频过程! 本帖最后由 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 本帖最后由 afan 于 2017-3-27 17:30 编辑
回复 10# tubaba
这种语法在较高版本中才有,AuMFC甚至早于它开发。
这种情况很好解决,加入一行即可:
#AuMFCompiler_EssFuncs=__Array_GreaterThan
或
#Obfuscator_Ignore_Funcs=__Array_GreaterThan
鼠标悬停“整合模式>精简未用(推荐)”可看到提示,如果用过原始的Obfuscator就应该知道用处。具体对精简有无作用还看当时发布的版本是否支持,#Obfuscator_Ignore_Funcs 肯定是支持的。
如果加后精简没问题,但迷惑有问题,那是当时的版本还不支持。那样需将精简后正常运行的脚本加工下 本帖最后由 afan 于 2017-3-27 17:07 编辑
AuMerger 精简时同样支持上述预编译,还可精简为
#AMF_EssFuncs=__Array_GreaterThan
BTW,发现问题可在原帖及时反馈,本人很乐意解决。基本上,人积极我积极,人不积极我更不会积极。 回复 9# zpmc123
看了冠西的视频,我觉得我还是会用的。。。只不过我用了论坛里数字前辈的AU3,所以估计编译器不一样,导致无法编译的。冠西用的是那个版本的AU3啊~ 回复 12# afan
恩,那可以把这个AuMerger更新下了{:face (356):} 回复 8# afan
哈哈哈,并不是啦~ 我说的poker face前辈就是你说的数字前辈,也就是131738,因为他的头像。。。。。是一个。。。扑克脸
问题大概已经找到了,虽然我没实验,应该是编译器的问题导致的。虽然我没有换一个试试。但是跟冠希哥的视频来看,应该就是编译器不一样了。
因为上次提问的时候说过最新的版本都支持,另外我以为都用的相同版本,所以我就没多想。
另外这个就是一个msgbox都不通过的例子。