lua 与 c++ 的基本交互 1
2016-09-09 19:44
465 查看
版本是 lua5.1 vs 2013
转载自 http://blog.csdn.net/wangbin_jxust/article/details/37557807
在前一篇文章中,我们已经讲了如何编译lua源码并生成lua.lib(请阅读 使用vs2010编译lua5.1源码生成lua.lib),在新的项目中,我们继续使用之前的项目来学习如何使用c++调用lua。如果有遇到unprotected error in call to Lua API错误,请参考本文最后的做法。
生成时可能 有一些安全警告错误
为了禁止一些安全警告(Windows程序员知道为什么),需要再修改配置属性->C/C++–>预处理器->预处理器定义,在末尾添加
右键testlua项目->配置属性->c/c++->常规->附加包含目录中,添加lua源码地址。
print?
#include "stdafx.h"
extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
int _tmain(int argc, _TCHAR* argv[])
{
lua_State *L = lua_open();
luaL_openlibs(L);
const char *buf = "print('Hello World')";
luaL_dostring(L,buf);
lua_close(L);
getchar(); //这句可以让你清楚的看到打印的 hello world
return 0;
}
如果遇到 unprotected error in call to Lua API (unable to get ModuleFileName)错误,请修改两个项目的字符集,项目右键->配置属性->常规->字符集,这里将“使用unicode字符集”修改为"使用多字节字符集"。
转载自 http://blog.csdn.net/wangbin_jxust/article/details/37557807
一、打开vs2010
二、创建项目
新建项目->win32控制台应用程序->下一步->应用程序设置中选择静态库,不勾选预编译头->完成。具体如下图:三、拷贝源码
将lua源码中的*.h文件拷贝到项目的头文件文件夹下,将lua源码中的*.c文件拷贝到项目的源文件文件夹下。四、生成lua.lib
项目右键->生成。此时即可在项目的Debug文件夹下看到生成的 lua.lib了。在前一篇文章中,我们已经讲了如何编译lua源码并生成lua.lib(请阅读 使用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
一、创建项目
同样在该解决方案中,右键解决方案->添加项目->命名为testlua,选择win32控制台程序->不需要其他配置,选择完成。二、配置项目
右键testlua项目->通用属性->框架和引用->添加新引用,指向lua项目。右键testlua项目->配置属性->c/c++->常规->附加包含目录中,添加lua源码地址。
三、代码调用
[cpp] view plain copyprint?
#include "stdafx.h"
extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
int _tmain(int argc, _TCHAR* argv[])
{
lua_State *L = lua_open();
luaL_openlibs(L);
const char *buf = "print('Hello World')";
luaL_dostring(L,buf);
lua_close(L);
getchar(); //这句可以让你清楚的看到打印的 hello world
return 0;
}
五、创建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字符集”修改为"使用多字节字符集"。
相关文章推荐
- Lua与C++交互调用(1)
- lua与C++交互
- Lua与C/C++的交互4:往Lua中写入C/C++变量
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与Lua之间进行数据函数交互 推荐
- (转)Lua与C/C++交互——Lua调用C/C++
- c++ 与 lua 简单交互1 (LUA CAPI)
- lua与c++交互全解析(二)
- Lua与C/C++的交互2:C/C++中读取Lua文件
- Lua与C/C++的交互1:C/C++与Lua最简单的互动
- lua与c++交互全解析
- lua与c++交互篇:char* 中的陷阱,万恶的'/0'结尾
- LUA与C++交互第一篇
- C/C++与Lua交互(C实现的Lua编译器的例子)
- Lua与C/C++的交互3:C/C++中读取Lua文件中的表
- LuaOO (Lua与C++交互的面向对象封装)
- c++与lua的交互--表的处理
- 简单的C++与LUA交互
- 解决lua与C++交互问题一则,记一笔
- Lua与C/C++的交互6:Lua调用C/C++函数
- lua与c++交互全解析