VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 33355|回复: 81

[Open Source]脚本编译解释引擎

[复制链接]
发表于 2014-2-13 15:17:00 | 显示全部楼层 |阅读模式
本帖最后由 19900603 于 2014-2-13 15:28 编辑

以前做的 打算在游戏里用的  中间挫折好几次烂尾大半年了 今天翻出来继续写了几行代码 Win7正常了 XP老是弹窗 郁闷
支持  Call api 调用
支持  外部函数调用
支持  脚本函数调用
只支持 字符串变量 Long数值变量(其实结构体也可以的)
可以调用脚本函数时传递变量
调用API 外部函数时可以传递 字符串和数值[传值或传址]
脚本为中间代码 类似于汇编那样的  高级语言分析这块还没写。。。。。
脚本命令啥的 在 Script.txt头部都注释了。。
脚本的速度的话 还可以吧。。。。和 Lua ,CMinus 啥的是没法比的 谁叫人家直接编译成X86呢 - -!

对这方面有兴趣的同学 一起发表发表看法  
Win7下啊测试正常
Xp下老弹窗蹦 郁闷死我
上班去了  以后有更新还会再补上的 Bug一大堆 能忍受的下吧 - -!
哦 对了 还不支持多线程  不支持异步调用 脚本中有个调用MessageBoxA的函数 连续点N下会出错的






代码如下。。。
游客,如果您要查看本帖隐藏内容请回复

发个CMinus C++源码 Pudn 下的 这个很牛叉 高仿C++代码 编译成X86的 速度你说呢?
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

17楼已更新,支持数值强制转换,byte integer long type string 5种变量  发表于 2014-2-16 17:07
15楼已更新修复Bug,含编译插件  发表于 2014-2-15 16:21
很好很强大,随便问一下题外话。可以通过HOOD Dx 的按键接口 实现后台按键嘛?  发表于 2014-2-13 22:41

评分

参与人数 2威望 +15 人气 +4 收起 理由
sunfrank + 13 + 3 很给力
xiaoohoo + 2 + 1 很给力

查看全部评分

本帖被以下淘专辑推荐:

 楼主| 发表于 2014-2-21 21:22:29 | 显示全部楼层
本帖最后由 19900603 于 2014-2-21 21:23 编辑

发了这么久也没人支持。。。还要不要发呢, 是不是没人对这方面有兴趣?

再更一章吧。。。



Push 常量字符串时 支持强制转换

脚本默认使用 LPSTR类型 缺省使用默认 所以下面这个转不转无所谓了
Push (LPSTR)"Test String"

这个还没写。。。宽字符串 用的不多 - -!偷偷懒先
Push (LPWSTR)"Test String"

变量$0的初始化
define $0 BSTR
$0 = "Test String"

传址 BSTR类型 相当于VB的 Byref(在外部函数或API中参数可以修改)
Push (BSTR)"Test String"
Push $0      //意思同上 传递对象

传值 BSTR类型 相当于VB的 Byval(在外部函数或API中参数不可修改)
Push ([BSTR])"Test String"
Push $[0]    // 意思同上 传递地址


未完成
×BSTR支持 LenB Left Right Mid Instr 判断
×LPWSTR支持 LenB Left Right Mid Instr 判断

另外优化了几处Bug



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

持续关注LZ更新中,也在不断学习!加油!  发表于 2014-3-2 00:03
额 可以写语法树分析啊。。 把高级语法解析成这代码  发表于 2014-2-22 13:28
确实没兴趣,你那个脚本太难写了,我说过我当年就是这样放弃NSIS的  发表于 2014-2-22 12:26

评分

参与人数 1威望 +6 人气 +1 收起 理由
快手 + 6 + 1 赞一个

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-2-13 17:47:54 | 显示全部楼层
看起来很不错,支持!!
回复 支持 反对

使用道具 举报

发表于 2014-2-13 19:33:47 | 显示全部楼层
楼主高手,向楼主学习~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2014-2-13 20:42:06 | 显示全部楼层
严重支持!
回复 支持 反对

使用道具 举报

发表于 2014-2-13 21:54:56 | 显示全部楼层
有什么优势呢,还不如直接使用vbs脚本

点评

tgy
怎么不可以?  发表于 2014-2-14 10:37
vbs可以与宿主程序交互么??能调用宿主程序中的函数么?  发表于 2014-2-14 01:49
而且vbs不跨平台  发表于 2014-2-13 22:38
。。。vbs没有源代码,要是我就用lua  发表于 2014-2-13 22:38
回复 支持 反对

使用道具 举报

发表于 2014-2-13 22:37:45 | 显示全部楼层
不要慌,lua也是用字节码的 看到你的脚本语法我就想到NSIS的脚本,也是长得像汇编的栈式计算机代码……

点评

- -! 看下12楼情况  发表于 2014-2-14 19:23
是啊,想当年我下载了NSIS和InnoSetup,由于NSIS的脚本太复杂不会写,所以我放弃治疗了,改用InnoSetup  发表于 2014-2-14 15:50
呵呵!nsis是那个打包软件么?  发表于 2014-2-14 01:47
回复 支持 反对

使用道具 举报

发表于 2014-2-13 22:38:27 | 显示全部楼层
很不错 楼主潜伏这么久 终于见浦头了....

点评

我以前 Dx8的时候 没用Dx输入对象 用的 GetAsyncKeyState 后来直接接收窗体按键事件了  发表于 2014-2-14 11:56
额!!因为好久没玩vb了  发表于 2014-2-14 01:46
回复 支持 反对

使用道具 举报

发表于 2014-2-14 00:11:59 | 显示全部楼层
支持!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-14 16:51:25 | 显示全部楼层
本帖最后由 19900603 于 2014-2-14 17:16 编辑

额。。。 编译工程源码我发错了。。。  改下一会发上来
还有 Bug找到了。。。
Call Api 时 参数没传进去  - -!
回复 支持 反对

使用道具 举报

发表于 2014-2-14 17:03:17 | 显示全部楼层
感谢!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2023-3-25 15:16

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表