C lua函数崩溃。

我为 lua 制作了一个 C 模块,作为 dll 文件,我使用 package.loadlib 函数在 lua 中加载该模块。该模块应使用 luaL_loadstring 执行一些 lua 代码。我的 lua 脚本由我没有编写的应用程序运行,我的模块应该扩展应用程序的功能。当在结果上使用 luaL_loadstringlua_pcall 时,应用程序会在某些字符串上崩溃,尤其是那些调用应用程序定义的一些 C 函数的函数所使用的字符串(请注意,并非所有的 C 定义函数都会崩溃,只有其中的一些)。它在没有崩溃的字符串上运行良好,而在那些崩溃的字符串上,我可以将从 loadstring 推送的结果返回到 lua 并在那里执行,证明代码本身应该是有效的。

这是我的调用方式:

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

是否有关于可能导致这些崩溃的建议?

点赞