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++代码。 |
Guilherme Albertini · DLL中的类 6 年前 |
Naomi · C#dll资源文件更改语言 6 年前 |
AidanH · C#DLL语言翻译实现[关闭] 6 年前 |
subham · DLL函数调用不工作 6 年前 |
PixelThis · 为什么我的DLL要求我的程序有一个特定的名称? 6 年前 |
nemo · DLL的“好”调用约定是什么? 6 年前 |