我正在使用Visual Studio 2005.如何从Lua脚本中调用C++函数?
------------------------ [luapassing.cpp] ------- -------------
#include "lua.h"
static int myCfunc (Lua_State *L){
double trouble = lua_tonumber(L,1);
lua_pushnumber(L,16.0 -trouble);
return 1;
}
int luaopen_luapassing (Lua_State *L){
static const lua_reg Map [] = {{"dothis",myCfunc},{NULL,NULL}};
luaL_register(L,"cstuff",Map);
return;
}
------------------------- [csample.lua] -------------------------
package.cpath = "./CLua2.dll"
require "luapassing"
print("hola")
print(seth.doThis(120))
正如我在我的答案解释,这是至关重要的除非Lua核本身被编译为C++,否则luaopen_modulename()函数是extern“C”。即便如此,由于DLL的怪癖,如果在项目中使用多个编译器,最好将它留在外部“C”以避免问题。 – RBerteig 2009-07-31 06:46:38