最近,我开始学习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应用程序。
谁知道原因并可以帮助我?谢谢。