这有点令人费解,但让我们试试:
我正在将 LUA 脚本集成到我的游戏引擎中,过去我在 win32 上以一种优雅的方式完成了这项工作。在 win32 上,我所做的只是将我想向 LUA 公开的所有函数标记为导出函数。然后,为了将它们集成到 LUA 中,我会解析可执行文件的 PE 头,解开名称,解析参数等,然后将它们注册到我的 LUA 运行时。这让我可以避免单独手动注册每个函数,只是为了将它们暴露给 LUA。
现在,快进到今天我在 iPhone 上工作的地方。我浏览了一些 Unix 的东西,并且非常接近采用类似的方法,但是我不确定它是否真的有效。
我对 Unix 并不完全熟悉,但这是我目前在 iPhone 上所拥有的:
-
第 1 步:通过 Objective-C 查询可执行路径并获取我的应用程序的路径
第 2 步:使用 dlopen 获取我的应用程序的句柄,使用:`dlopen(path, RTLD_NOW)`
第 3 步:使用`dlsym( libraryHandle, objectName )` 尝试获取已知符号的地址。
上述步骤实际上不会让我到达我想去的地方,但即使这样也行不通。有没有人有在 Unix 上做这种事情的经验?是否有任何标题或功能我可以谷歌让我走上正确的轨道?
谢谢;)