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

最近,我开始学习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:无法从文件'.\mylib.dll' 加载模块'mylib':%1不是有效的Win32应用程序。

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

点赞