C++与Lua本质原始交互API
发表于|更新于|topic
|阅读量:
<a href="/2015/11/11/lua_pairs_ipairs/" rel="next" title="Lua中ipairs和pairs的区别与使用">
<i class="fa fa-chevron-left"></i>
<p class="post-nav-pre-next-title">
Lua中ipairs和pairs的区别与使用
</p>
</a>
</div>
<span class="post-nav-divider"></span>
<div class="post-nav-prev post-nav-item">
<a href="/2015/12/09/cpp_vargs/" rel="prev" title="C++可变参数">
<p class="post-nav-pre-next-title">
C++可变参数
</p>
<i class="fa fa-chevron-right"></i>
</a>
</div>
</div>
<p>我们用一个例子来说明.</p>
. . .
首先, 我们需要创建一个 C++ 的主程序,以便同 Lua 进行通信. 如下 :
1 | extern "C" { |
编译命令 : g++ lua_test.cpp -o ltest -llua -ldl
创建Lua文件
其次,是 lua 文件,我们将它命名为 luascript.lua
1 | print("Hello from Lua") |
打印结果
运行 cpp 文件,结果如下:
>> 载入(可选)标准库,以便使用打印功能
>> 载入文件,暂不执行
>> 从 C++ 写入数据 cppvar
>> 执行 lua 文件
Hello from Lua
Lua code is capable of reading the value set from C++ 1.1
>> 从 Lua 读取全局变量 luavar 到 C++
C++ 从 Lua 读取到的 luavar = 3.3
>> 从 C++ 执行 Lua 的方法 myfunction
函数返回值是:(-)(-)(-)(-)(-)
>> 从 Lua 执行 C++ 的方法
>>>> 首先在 Lua 中注册 C++ 方法
>>>> 调用 Lua 函数以执行 C++ 函数
函数返回值是:2.5
>> 释放 Lua 资源
参考
文章作者: 安全书