Lua脚本无法加载由C编写的.dll

时间:2017-01-12 01:04:18

标签: c dll lua

最近,我开始学习Lua语言。当我想在Lua中调用C函数时,我遇到了一些麻烦。 我写了一个.c文件,它定义了一些函数,然后编译并链接它以生成一个.dll文件。这是我的代码:

#include <stdlib.h>
#include <stdio.h>
#include "luainc.h"

static int l_func1(lua_State *L)
{
    double d1 = luaL_checknumber(L, 1);
    double d2 = luaL_checknumber(L, 2);
    lua_pushnumber(L, d1 * d1 + d2 * 2);
    return 1;
}

static const struct luaL_Reg mylib[] =
{
    {"func1", l_func1},
    {NULL, NULL}
};

int luaopen_mylib(lua_State *L)
{
    luaL_newlib(L, mylib);
    return 1;
}

然后,我通过我的Lua脚本加载它:

local mylib = require("mylib")

但是,它失败并出现以下错误: lua:错误加载模块&#39; mylib&#39;来自文件&#39;。\ mylib.dll&#39;:%1不是有效的Win32应用程序。

谁知道原因并可以帮助我?谢谢。

0 个答案:

没有答案