微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Lua嵌入VC++编程

转载地址: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; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐