C Lua绑定Windows VS2017

时间:2019-04-02 05:08:53

标签: c lua lua-api

我想构建一个.dll,其中填充了使用VS 2017编译的用C编写的Lua绑定,但是我似乎没有任何运气,而且我可用的资源令人困惑,并且大多数情况下已过时。

这就是我所做的。

我已经从源代码编译了lua并将其添加到我的路径中,以便可以lua.exe进行任何操作。这也创建了lua53.dll

我已经获取了lua源代码的所有.c和.h文件,并将它们以及一个我要测试的main.c一起添加到了我的VS项目中。我也添加了.dll文件,但仅以与添加.c和.h文件相同的方式进行。我认为它什么也没做。

这是main.c:

#define LUA_LIB

#include "lua/lua.h"
#include "lua/lualib.h"
#include "lua/lauxlib.h"
#include "tg/tg.h"

static int lua_TG(lua_State *L) {
    return 1;
}

static int lua_useTGHandle(lua_State *L) {
    struct TGHandle *tgHandle = malloc(sizeof(struct TGHandle));
    *tgHandle = TG();
    lua_pushlightuserdata(L, tgHandle);
    return 1;
}

static const luaL_Reg tglib[] = {
    {"TG", lua_TG},
    {"useTGHandle", lua_useTGHandle},
    {NULL, NULL}
};

LUALIB_API int luaopen_libtg(lua_State* L) {
    luaL_newlib(L, tglib);
    return 1;
}

实现了一个功能,没有实现,但是lib应该注册了。

我将构建类型更改为.dll,并且生成的.dll没有任何错误,但是当我尝试在Lua脚本中使用它时,我得到了:

%1 is not a valid Win32 application.

我当然不知道自己在做什么。我将如何在VS2017中建立一个lua绑定构建环境?

0 个答案:

没有答案