ChaiScript-基本要点

2016-05-27  本文已影响264人  KevinCool

包含ChaiScript的基本要点

  1. 将ChaiScript添加到现有的VC工程中
    1). 将ChaiScript的include目录添加到工程的包含目录中
    2). 在工程源文件中 #include <chaiscript/chaiscript.hpp>
    3). 实例化ChaiScript引擎
using namespace chaiscript;
ChaiScript chai;
//或者直接
chaiscript::ChaiScript chai;```

2. **ChaiScript脚本与C++互相调用**
  1). **在C++中调用/执行ChaiScript代码**

      - 在C++代码中编写并且执行ChaiScript代码`chai("var scripti = 15");`

   - 是直接调用ChaiScript脚本文件来执行

//helloworld.chai
print("hello chaiscript world")
//控制台程序

include <iostream>

include <chaiscript/chaiscript.hpp>

int main(){
using namespace chaiscript;
ChaiScript chai;
chai.eval_file("helloworld.chai");
return 0;
}```

2).在C++中使用脚本的变量(对象)

//添加一个新的变量
chai("var scripti = 15");
//操作system的变量
//int &表示int引用类型
//操作这个引用就是在操作这个引用所引用的变量。
int &scripti = chai.eval<int &>("scripti");
scripti *= 2;
std::cout << "scripti (updated): " << scripti << std::endl;
chai("print(\"Scripti from chai: \"+to_string(scripti))");```
在C++中操作ChaiScript中变量的方法,使用引用。

  3). **在C++中调用ChaiScript中定义的函数**
与使用变量一样,关联脚本的函数到C++中定义的函数名。

std::function<double()> TestChai = chai.eval<std::function<double()> >("TestChai:)
double d = TestChai();```

4). 在脚本中调用C++函数/d对象
要在脚本中使用C++对象或者使用C++函数要先把函数注册到ChaiScript引擎中。
注册对象的语法:

System system;
chai.add(var(&system),"system");
//注册函数
chai.add(fun(&MyClass::function),"method");```
比如这样,首先是将C++中的变量注册到引擎中:

double value = -2;
double out;
chai.add(chaiscript::var(&value),"value");
chai.add(chaiscript::var(&out),"out");```
下面是将C++的函数注册到引擎中:

double function(int i, double j){
    return i * j;
}
chai.add(chaiscript::fun(&function),"function");
//使用
chai("if (value > 1){
            out = 1/function(2,value)}");```






上一篇 下一篇

猜你喜欢

热点阅读