0

我已经为 lua 制作了一个 C 模块作为我使用该package.loadlib函数在 Lua 中加载的 dll。该模块应该用于luaL_loadstring从字符串执行一些 lua 代码。我的 lua 脚本由我自己没有编写代码的应用程序运行,并且我的模块应该扩展应用程序的功能。在使用luaL_loadstring结果lua_pcall时,应用程序在某些字符串上崩溃,尤其是那些使用调用应用程序定义的某些 C 函数的函数的字符串(请注意,它不会在所有 C 定义的函数上崩溃,只是在其中一些函数上崩溃)。它在它不会崩溃的字符串上运行良好,在那些它确实崩溃的字符串上,我可以使用将 loadstring 的结果推送回 lua 并在那里执行它,这表明代码本身应该是有效的。

这就是我所说的:

lua_getglobal(L, "loadstring");
lua_pushstring(L, msg);
lua_call(L, 1, 1);
lua_call(L, 0, 0);

对于可能导致这些崩溃的原因有什么建议吗?

4

0 回答 0