.
Back to SqPlus
C/C++ binding:
// Example from forum post question:
class STestScripts {}; // Proxy class
class TestScripts {
public:
int Var_ToBind1,Var_ToBind2;
void InitScript1(void) {
Var_ToBind1 = 808;
RegisterGlobal(*this,Test1,"Test1");
RegisterGlobal(*this,Test2,"Test2");
BindVariable(&Var_ToBind1,"Var_ToBind1");
} // InitScript1
void InitScript2(void) {
Var_ToBind2 = 909;
SQClassDef<STestScripts>("STestScripts").
staticFunc(*this,Test1,"Test1").
staticFunc(*this,Test2,"Test2").
staticVar(&Var_ToBind2,"Var_ToBind2");
} // InitScript2
void Test1(void) {
printf("Test1 called.\n");
}
void Test2(void) {
printf("Test2 called.\n");
}
} testScripts;
Script test:
testScripts.InitScript1();
testScripts.InitScript2();
SquirrelObject testScriptBinding = SquirrelVM::CompileBuffer("\
local testScripts = STestScripts(); \n\
testScripts.Test1(); \n\
testScripts.Test2(); \n\
print(testScripts.Var_ToBind2); \n\
Test1(); \n\
Test2(); \n\
print(Var_ToBind1); \n\
");
SquirrelVM::RunScript(testScriptBinding);
An easy to use binding system for Squirrel
2/22/2017 3:48:17 AM - -92.222.238.172