类库大魔王
类库大魔王 正处于中年迷茫期的C++、Go苦手,努力活着

什么程序可以集成脚本语言解释器


  每次看到按键精灵,心里总有种奇怪的感觉,这个东东,忽悠了好多菜鸟,也赚了不少钱吧,可我心里却觉得这不值,是忌妒吗?
  最近想着,做什么程序可以集成脚本语言解释器呢!
  有些情况是可以预见得到适用的,比如这些天突然想学学围棋,于是在网上找了下打谱的软件,这种软件就适用。有个叫StoneBase的打谱软件是国内做得比较好的,但它并没有第3方可扩展性,照我的想法是,对于要兼容多种格式的棋谱文件,就可以用脚本来解析,规定一种中间格式,假设是标准的SGF,把所有其它格式在主程序的主动触发下都用脚本转换成中间格式。我暂时也想不出其它更多的地方可以用脚本的了,偶然看到它的论坛上有人发了个可以自动下载TOM网站上公布的棋谱文件,于是我就想,是不是可以干脆直接支持外部工具,但是转念又一想,都已经是外部工具了,就不需要集成解释器了……
  另外还有种情况,最近因为要写Socket程序,所以想到如何方便地调试这类程序,特别是对于客户端和服务器端都还没写出来的情况下。于是我想写一个辅助调试socket程序的工具,大概的想法是,它可以做为一个主动去连接的客户端,或者是被动接受连接的服务器端,连接上后,可以看到接收到的内容,还可以由用户手动输入内容发送,这种情况下,脚本的应用就比较有实际意义了,比如可以把接收到的内容交给脚本处理一下,脚本再根据实际情况发送一些内容,这比较适用于调试协议,像http/ftp等协议用脚本就能实现一个简单的原型。这个工具我已经想了很久了,但只建了个工程,却还没开始做,如果做好了,一定是个很实用的东东。除了这样的客户端和服务器端功能外,还要有用Detours静态hook创建进程,动态注入attach到已有进程,用WinPCap或Raw Socket(其实有了WinPCap就不需要了)抓包这几项功能。静态hook和动态attach是为了看进程调用WinSock API的情况,而WinPCap抓包就是一个普通的抓包功能,因为如果光是做抓包功能,我想我是做不过那些专业的做了好多年的工具的,如IRIS、CommView以及开源的Wireshark等等,所以重要的是前几项。又扯远了,脚本在这个工具里还可以用于解析帧结构、协议等等。
  当然还有种情况,就是用于像按键精灵这样的工具上。
  现在有4种脚本语言是我比较感兴趣集成到程序中的,分别是Python、Ruby、Lua和TCL,但实际上TCL与前面3个放在一起并无多少作用了,它的应用面比较窄,又缺少现代语言的一些元素,而且没有什么特别有优势的特性。Python和Ruby这两个大而全,且语言特性丰富的脚本已经能满足大多数场合的要求,而Lua则完全是看中它小巧快速,特别适用对性能有点要求的场合。Boost中有Python的粘合库,Lua以前有LuaBind和LuaTinker,但好像没更新好久了,至于Ruby我还没有了解。但我想,我总有一天会自己来分别写一套简单的,自己够用的库的。

感觉本文不错,不妨小额鼓励我一下!
如果你有Visa、MasterCard之类的国际银行卡,也可以考虑以下选项:
如果你看不到评论框,说明Disqus被墙了。