lua5.2在Windows中调用C DLL

我的C代码如下:

skypeAnalyzer.h

#include "lua.h" #include "lualib.h" #include "lauxlib.h" #include "stdio.h" #include "stdlib.h" //dll export func int _declspec(dllexport) luaopen_skypeAnalyzer(lua_State* L); 

skypeAnalyzer.c

 #include "skypeAnalyzer.h" #include <windows.h> #include <wincrypt.h> int run(lua_State* L){ printf("------->>> Hi! %s \n", lua_tostring(L, 1)); return 0; } struct luaL_Reg IrLibs[] = { { "run", run }, { NULL, NULL } }; int luaopen_skypeAnalyzer(lua_State* L) { luaL_newlib(L, IrLibs); return 1; } 

而lua代码如下:

 require "skypeAnalyzer" skypeAnalyzer.run("Lua") 

我在vs 2013中编译dll并生成skypeAnalyzer.dll,但是当我运行lua代码时,出现以下错误:

 C:\Lua>lua52.exe skypeAnalyzer.lua lua52.exe: C stack overflow stack traceback: [C]: in ? [C]: in function 'require' C:\Lua\skypeAnalyzer.lua:1: in main chunk [C]: in function 'require' 

如何在编译dll时dynamic调用lua52.dll? 如何在VS 2013中设置? 我在vs 2013中编译dll并生成skypeAnalyzer.dll,但是当我运行lua代码时,出现以下错误:

任何人都可以帮助我?

你的lua代码需要自己。

.dll.lua文件使用不同的名称。

有了lua 5.1,你可能会得到一些稍微有用的错误信息:

 lua5.1: ./foo.lua:1: loop or previous error loading module 'foo' stack traceback: [C]: in function 'require' ./foo.lua:1: in main chunk [C]: ? [C]: ?