请教关于lua调用C++函数的问题
lua吧
全部回复
仅看楼主
level 1
根据网上教程一直没弄好,请大神看看哪里错了,下面贴代码。(lua版本5.3.4)
生成dll的C++代码:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include "lua.hpp"
extern "C" {
int add(lua_State *L)
{
double op1 = lua_tonumber(L, -1);
double op2 = lua_tonumber(L, -2);
lua_pushnumber(L, op1 + op2);
return 1;
}
//--------注册函数-----------
static struct luaL_Reg mylib[] =
{
{ "add", add },
{ NULL, NULL } /* sentinel */
};
int __dec
lsp
ec(dllexport) luaopen_mylib(lua_State* L)
{
luaL_newlibtable(L, mylib);
luaL_setfuncs(L, mylib, 0);
return 1;
}
}
把生成的dll放在了lua.exe文件夹下,执行require ("mylib"),然后调用dll函数会提示 attempt to index a nil value。mylib值为nil,模块读取失败。
2017年08月23日 04点08分 1
level 1
不知道是模块读取失败还是我注册有问题。[汗]
2017年08月23日 05点08分 2
1