2021-03-06 14:03:23 +08:00
|
|
|
#define SOL_ALL_SAFETIES_ON 1
|
|
|
|
#include <sol/sol.hpp>
|
|
|
|
|
|
|
|
std::string my_function(int D_count, std::string original) {
|
|
|
|
// Create a string with the letter 'D' "D_count" times,
|
|
|
|
// append it to 'original'
|
|
|
|
return original + std::string(D_count, 'D');
|
|
|
|
}
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
|
|
|
sol::state lua;
|
|
|
|
|
|
|
|
lua["my_func"] = my_function; // way 1
|
|
|
|
lua.set("my_func", my_function); // way 2
|
|
|
|
lua.set_function("my_func", my_function); // way 3
|
|
|
|
|
|
|
|
// This function is now accessible as 'my_func' in
|
|
|
|
// lua scripts / code run on this state:
|
|
|
|
lua.script("some_str = my_func(1, 'Da')");
|
|
|
|
|
2021-03-06 23:14:48 +08:00
|
|
|
// Read out the global variable we stored in 'some_str' in
|
|
|
|
// the quick lua code we just executed
|
2021-03-06 14:03:23 +08:00
|
|
|
std::string some_str = lua["some_str"];
|
2022-09-28 13:56:26 +08:00
|
|
|
SOL_ASSERT(some_str == "DaD");
|
2021-03-06 14:03:23 +08:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|