我的C代码如下:
#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);
#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]: ?