![]() |
1
3
如果Alien不满足您的需要,而且如果DLL有一个强烈的面向对象的接口,您需要了解对象的成员和方法,以及调用导出函数,那么您应该考虑生成一个包装DLL,将旧API从DLL接口到Lua。 这可以通过包装生成器来完成,例如 Swig 它将根据类和函数的声明为Lua以及许多其他脚本语言编写包装器,通常只需要输入比现有.h文件多一点的内容。 Lua的代码也足够简单,可以更简单地用C语言手工编写自己的包装器。要做到这一点,从C语言中创建Lua可调用模块的标准方法开始,并实现将参数从Lua堆栈传输到适合于每个API调用的形式、调用到DLL以及将任何结果推回到Lua ST上的函数。ACK。这也是利用Lua为那些在dll中必须使用输出指针处理第二个(或更多)返回值的函数返回多个结果的能力的地方。一 discussion of the issues 一些示例代码可以在Lua用户的wiki上找到。 还有一页专门介绍 binding Lua to other languages 在Lua用户的wiki上。 |
![]() |
2
3
尝试外星人: http://alien.luaforge.net/ 还有c/invoke: http://www.nongnu.org/cinvoke/lua.html |
![]() |
3
0
你必须使用一个自动化工具,或者手工编写,一个C++接口。Lua不能处理直的C++代码。 |
|
John Whitham · 如何修复“尝试调用字符串值”错误 1 年前 |
![]() |
oreto · Roblox Lua脚本,如何使帧从左到右减小其大小? 2 年前 |
![]() |
Jexter Labo · 如何在Lua中从循环表中删除键值 3 年前 |
![]() |
Zack Lee · 在Lua中查找未使用的符号 7 年前 |
|
User101 · Roblox Studio-GUI的按键切换 7 年前 |
![]() |
Doudou · 当我的noob被杀死时,我的GUI如何显示? 7 年前 |
![]() |
eonmax · Lua在后台执行python脚本 7 年前 |