转载地址:http://blog.csdn.net/wgm001/article/details/1740232
由于lua是用标准C写的,所以嵌入VC++里时,必须要用
extern "C"
{
?#include "lua.h"
??#include "lualib.h"
??#include "lauxlib.h"
}
来声名.
下面是我用VC++按lua文档里写的一个读取lua文件里的公共变量的程序
int GetWidthHeight(int &nWidth,int &nHeight )
{
?int width,height;
?int x,y;
?lua_State *L = lua_open();
?lua_cpcall(L,luaopen_base,0);
?lua_cpcall(L,luaopen_io,luaopen_string,luaopen_math,0);
?if (luaL_loadfile(L,"G://lua-5.1.2//Test//Test.lua") ||
??lua_pcall(L,0) )
?{
??TRACE1("cannot run configuration file: %s",
???lua_tostring(L,-1)?);
?}
?lua_getglobal(L,"width");
?lua_getglobal(L,"height");
?lua_getglobal(L,"x");
?lua_getglobal(L,"y");
?if (!lua_isnumber(L,-4))
?{
??TRACE0("/'width/' should be a number/n"?);
?}
?if (!lua_isnumber(L,-3))
?{
??TRACE0("/'height/' should be a number/n"?);
?}
?if (!lua_isnumber(L,-2))
?{
??TRACE0("/'x/' should be a number/n"?);
?}
?
?if (!lua_isnumber(L,-1))
?{
??TRACE0("/'y/' should be a number/n"?);
?}
?nWidth = width = (int)lua_tonumber(L,-4);
?nHeight = height = (int)lua_tonumber(L,-3);
?x = (int)lua_tonumber(L,-2);
?y = (int)lua_tonumber(L,-1);
?lua_close(L);
?return 0; }