lua 与 c++ 的基本交互 1


版本是 lua5.1 vs 2013 

转载自 http://blog.csdn.net/wangbin_jxust/article/details/37557807

一、打开vs2010

使用vs2010编译lua5.1源码生成lua.lib),在新的项目中,我们继续使用之前的项目来学习如何使用c++调用lua。如果有遇到unprotected error in call to Lua API错误,请参考本文最后的做法。

生成时可能 有一些安全警告错误 

为了禁止一些安全警告(Windows程序员知道为什么),需要再修改配置属性->C/C++–>预处理器->预处理器定义,在末尾添加

;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE

view plain copy    print?在CODE上查看代码片派生到我的代码片
  1. #include "stdafx.h"  
  2. extern "C"    
  3. {    
  4. #include     
  5. #include     
  6. #include     
  7. }    
  8.   
  9. int _tmain(int argc, _TCHAR* argv[])  
  10. {  
  11.     lua_State *L = lua_open();    
  12.     luaL_openlibs(L);    
  13.     
  14.     const char *buf = "print('Hello World')";    
  15.     luaL_dostring(L,buf);    
  16.         
  17.     lua_close(L);    
  18.   getchar(); //这句可以让你清楚的看到打印的 hello world
  19.     return 0;  
  20. }  

五、创建lua文件

在当前cpp文件所在的目录下,创建一个test.lua文件,文件里写加上lua代码,这里我写的是 print("hello world  from lua file")

四、完成

直接运行,可以输出"hello world" 和 hello world  from lua file。   如果遇到 unprotected error in call to Lua API (unable to get ModuleFileName)错误,请修改两个项目的字符集,项目右键->配置属性->常规->字符集,这里将“使用unicode字符集”修改为"使用多字节字符集"。