合作下载
- 欢迎各大软件下载站合作下载,联系 [email protected]
willpower是一款虚拟代码解释器。
它可以非常方便的嵌入到c c++代码中作为一个小脚本调用,脚本可以在c c++层发送消息修改解释器的代码执行流程和源代码.
在c c++层调可以很简单的注册回调函数到willpower脚本中.它可以在代码运行时期动态的添加 修改 删除一个执行函数的代码.
甚至可以修改switch逻辑模块的执行全流程.是一款动态可自身修改的虚拟脚本.
并且脚本自带内嵌汇编功能, 可以像vs2008一样在代码中编写内嵌汇编 代码, 可以直接运行2进制代码, 跟汇编代码, 在开发游戏辅助, 分析2进制代码中 起到非常方便的作用.
希望大家能喜欢. 我们目前正在开发willpower的可编译版本, 并在提高执行速度这个基础上保留所有动态修改特型.
环境vs2008; (主方案: _wp_code_asm文件夹下的vs项目)
方案: 编译成dll 提供给宿主语言调用;(例子请查看Willpower文件夹_wp_code_asm目录中的wp_fun文件夹)
注意事项:
工程项目里面包含一个mfc_wp工程, 如果要编译这个工程, 请先将_wp_code_asm项目改为.dll生成,
想重新把_wp_code_asm项目重新编译,
然后再重新编译mfc_wp项目;
然后就是一些比较生硬的语法给大家讲述一下:
0. switch的使用方法:
错误的使用方法:
switch(n)
{
}
switch(n)
{
case 1:
{
break;
}
}
正确的使用方法:
switch(n,"命名")
{
case 1:
{
break;
}
}
即需要给switch命名, 且模块中必须有一个case子模块;
1. for while关键字的使用
错误的使用方法如下:
while(n != 0) expr=: n++;
正确的使用方法:
while(n != 0)
{
expr=: n++;
}
即必须有花括号, for 同样;
2. 表达式运算:
错误的使用方法:
n = 1+2+3+4+5;
正确的方法:
expr=: n = 1+2+3+4+5;
即必须使用expr=: 关键字
3. 函数的使用方法:
3.1定义一个函数:
def add (int x, int y)
{
expr=: x = x+y;
}
3.2定义一个引用参数的函数
def add (int x, int &y)
{
expr=: y = x+y;
}
4.函数返回值:
错误的使用方法:
int n = call add(1, 2);
正确的使用方法:
int n = 3;
call add(1, n);
结果:n=4;
5. 另外一种函数使用方法:
例如: fun::_add(n)<<< 表示输入一个参数到fun::_add函数中; 与()传入效果一致;
而且这种函数不需要定义引用, 需要返回到哪个变量上, 可以自己在实现代码中操作;