答应萝卜要说说的,就瞎白些,想到什么说什么。
1,我是受不了V1的崩溃才转V2的。面对V1无数谜之崩溃,即使重写了无数次结构也无济于事,浪费了无数时间,也把H作者骚扰到够,于是就打算转移了。
以前也转移过几次,但技术渣渣,很多必用的库不会写V2版,所以最后都放弃了。这回大概AHK力满槽,又恰好V2最近的版本恢复了一些以前删除的语法和命令,使得兼容性大增,整个过程十分顺利。现在虽然还是经常遇到崩溃,但都一一找到源头解决掉了。还在磨合阶段嘛。
2,多线程容易崩溃,更容易出错。这是事实。代码规范可以大大减少错误机率,这也是V2的长处。
3,V2的特点,命令的函数化,确实不错,代码结构流畅了很多。但需要注意的是,如果你追求速度最大化,就是想能快一点是一点,别用这些函数,因为会比原命令慢很多,大概一倍吧。
4,线程交互使用最多的大概是 ahkFunction 和 ahkPostFunction,这两个函数,有个需要注意的地方是,传递的参数必须是字符串。如果传递数值必须这样使用:
AhkThread.ahkPostFunction("Func",1 "")
我在V2遇到最难搞的崩溃的原因,就是在某个参数上忘记加这两个引号。 这也可见多线程是多么容易崩溃.
5,我对V2的报错机制是又爱又恨,被它骚扰到爆,当然也找出很多不恰当的代码。= = 我不认为它报错的代码是错的,但没有关闭的开关也只好改。这大概也是崩溃减少的原因吧。
6,前面说过V2最近恢复了V1的语法和命令,这让修改V1的库变得十分容易。很多大型的库,例如GDIP PUM 都是稍加修改就能正常使用了。整个转移过程耗费精力是我自写的代码,我为我的极简的代码风格付出了惨痛代价。拜此所赐,我的几个重要且大量代码的模块都是重写的,修复的几个也十分缓慢。要养成良好的代码习惯啊,各位。
V1转移V2经验谈
不适合其他版块的话题这里发吧
Moderators: tmplinshi, arcticir
Jump to
- AutoHotkey Foundation
- ↳ About This Community
- ↳ Forum Issues
- AutoHotkey (v2, current version)
- ↳ Ask for Help (v2)
- ↳ Gaming
- ↳ Scripts and Functions (v2)
- ↳ Gaming
- ↳ Tutorials (v2)
- ↳ Tips and Tricks
- ↳ Wish List
- ↳ Suggestions on Documentation Improvements
- ↳ Bug Reports
- ↳ AutoHotkey Development
- ↳ AutoHotkey_H
- ↳ Ask for Help
- ↳ Development
- ↳ Editors
- ↳ Adventure IDE
- ↳ Old Topics
- ↳ AHK Studio
- ↳ Notepad++
- ↳ Pulovers Macro Creator
- ↳ SciTE4AutoHotkey
- ↳ Visual Studio Code
- ↳ Announcements
- ↳ General Discussion
- AutoHotkey (v1.1 and older)
- ↳ Ask for Help (v1)
- ↳ Gaming Help (v1)
- ↳ Scripts and Functions (v1)
- ↳ Gaming Scripts (v1)
- ↳ Tutorials (v1)
- ↳ Tips and Tricks (v1)
- General
- ↳ Other Utilities & Resources
- ↳ Other Programming Languages
- ↳ C/C++
- ↳ ASM
- ↳ C#
- ↳ KeySharp
- ↳ Off-topic Discussion
- ↳ RPA
- Other languages
- ↳ Looking for Volunteers in other languages
- ↳ Deutsch (German)
- ↳ Ich brauche Hilfe
- ↳ Spiele
- ↳ Skripte und Funktionen
- ↳ Tutorials
- ↳ Tooltime
- ↳ Allgemeines
- ↳ 中文 (Chinese)
- ↳ 请求帮助
- ↳ 脚本函数
- ↳ 教程资料
- ↳ 相关工具
- ↳ 其他
- ↳ Español (Spanish)
- ↳ Pedir Ayuda
- ↳ Automatización de Juegos
- ↳ Scripts y Funciones
- ↳ Tutoriales
- ↳ Otras Utilidades y Recursos
- ↳ General
- ↳ Русский (Russian)
- ↳ Помощь
- ↳ Скрипты для Игр
- ↳ Скрипты и библиотеки
- ↳ Статьи и руководства
- ↳ Прочие ресурсы и ПО.
- ↳ Свободное общение
- ↳ Français (French)
- ↳ J'ai besoin d'aide
- ↳ Scripts et Fonctions
- ↳ Tutoriels
- ↳ Autres Utilitaires et Ressources
- ↳ Hors Sujet
- ↳ Português (Portuguese)
- ↳ Ajuda e Suporte Geral
- ↳ Scripts e Funções
- ↳ Tutoriais
- ↳ Outras Ferramentas e Recursos
- ↳ Outros Assuntos
- ↳ 한국어 (Korean)