我已经为lua创建了一个C模块作为dll,我使用package.loadlib
函数在Lua中加载。该模块应该使用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);
是否有任何可能导致这些崩溃的建议?