我有这个简单的程序,我在Visual C ++ 2008 Express中用dll编写:
#include <lua52/lua.h>
#include <lua52/lualib.h>
#include <lua52/lauxlib.h>
#pragma comment(lib,"lua52.lib")
#include <stdio.h>
int needless(lua_State *L)
{
printf("bullshit\n");
return 0;
}
static const struct luaL_Reg noise[] = {
{"needless",needless},
{NULL,NULL}
};
__declspec(dllexport) int __cdecl luaopen_noise(lua_State *L)
{
luaL_newlib(L, noise);
return 1;
}
当我在lua5.2解释器中将生成的dll与“import noise”链接起来时,我得到了“检测到多个lua虚拟机”的原因让我望而却步。我该怎么做才能使其有效?
答案 0 :(得分:1)
用C语言编写的Lua库不包含Lua核心库的副本。
我不知道Visual C +,但这条线可能是罪魁祸首:
#pragma comment(lib,"lua52.lib")