新手求助!Lua调用C++动态库dll,谢谢大神
lua吧
全部回复
仅看楼主
level 2
DarylzDD 楼主
各位大神,刚开始学习Lua,求助关于Lua调用C++动态库dll,
我是参考这篇文章:http://www.cnblogs.com/sevenyuan/p/4511808.html中Lua调用C++的第三种方式实现的
环境是:生成C++的动态库dll用的VS2012,Lua用的LUAStudio v9.30;
.cpp的代码:
#include <stdio.h>
#include "mLualib.h"
static int averageFunc(lua_State *L)
{
int n = lua_gettop(L);
double sum = 0;
int i;
for (i = 1; i <= n; i++)
sum += lua_tonumber(L, i);
lua_pushnumber(L, sum / n);
lua_pushnumber(L, sum);
return 2;
}
static int sayHelloFunc(lua_State* L)
{
printf("hello world!");
return 0;
}
static const struct luaL_Reg myLib[] =
{
{"average", averageFunc},
{"sayHello", sayHelloFunc},
{NULL, NULL}
};
int luaopen_mLualib(lua_State *L)
{
L = luaL_newstate();
luaL_newlib(L, myLib);
return 1;
};
.h代码:
#pragma once
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#define LUA_BUILD_AS_DLL
extern "C" __dec
lsp
ec(dllexport) int luaopen_mLualib(lua_State *L);
.lua代码:
local mLualib = require("mLualib")
local a,b = mLualib.average(1,2,3,4,5)
出错在local a,b = mLualib.average(1,2,3,4,5)
报错内容是
E:\lua\programing\project001\mLua.lua:(23): attempt to call global 'average' (a nil value)
Stack Traceback:
E:\lua\programing\project001\mLua.lua:23: in main chunk
请问是什么问题呢?麻烦各位了,谢谢!辛苦了!
2016年05月11日 00点05分 1
level 7
lua_reg
2016年05月18日 01点05分 3
1