我有一个使用Lua链接为dll(非静态)的小应用程序。我想使用package.loadlib (libname, funcname)通过Lua加载我自己编写的c++ dll。为此,我需要导出一个遵循Lua的lua_CFunction协议的函数。显然,为此我必须将
lua.h
合并到我的项目中,并使用Lua的函数传递参数和结果。所以我的问题是:
- 我的DLL会使用已经加载到小应用程序进程中的Lua dll吗?
package.loadlib
会立即加载和卸载我的DLL,还是一旦加载,直到lua脚本执行结束或应用程序终止,我的DLL就一直存在?
luaL_ref()
与LUA_REGISTRYINDEX
中的表格一起获取对任何可以在C端保持(以整数形式)的对象的引用,并使用luaL_unref()
进行释放。 - RBerteigluaL_register
已被弃用;应该使用luaL_newlib
,因为动态加载的模块不应该在全局环境中注册任何内容。 - bcrist