一) 、建立lua源代码工程,编译lua的静态库

1、下载Lua源码 http://www.lua.org/download.html

a 下载后解压到一个目录下,这里假设解压到D:\lua-5.1.5b 注意下载的版本,如果是5.2.x,后面代码中的C API发生了改变
2、在VS2010中新建一个静态库项目,项目命名为lua
     a 选择新建 Win32 console project
     b 在wizard界面选择 static Library;不选择Precomplied Header
3、往工程中添加代码(Add -> Existing Item)
     a 添加D:\lua-5.1.5\src 目录下的*.h文件到项目的Header Files目录下
     b 添加D:\lua-5.1.5\src 目录下的*.c文件到项目的Source Files目录下
(可选)4、配置项目的属性,在项目的“配置属性” 界面中操作
    a Configuration Properties -> C/C++-> General -> Additional Include Directories 
       添加D:\lua-5.1.5\src
    b Configuration Properties -> C/C++-> Advanced -> compile as 
        这里的选择将影响后面代码中如何指定编译链接方式,后面的测试选择的是Compile as C code
(可选)5、 生产项目 Build
     如果是DEBUG mode 将在Debug目录下看到一个lua.lib文件,Release mode的lib文件在Release文件下

二)、后面添加一个项目尝试在C/C++代码中, 调用刚才的lua静态库
1、在解决方案中添加一个 Win32 console project,项目名称命名为testlua,后面wizard界面中的选项无需修改
2、添加对lua项目的引用
    a Common Properties -> Framework and References -> Add New References 
   选择lua项目
3、添加对头文件的include directory
   a Configuration Properties -> C/C++-> General -> Additional Include Directories 
  添加D:\lua-5.1.5\src
4、在项目的的在testlua.cpp文件中添加下面的代码

  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <string.h>
  4. extern "C"
  5. {
  6. #include <lua.h>
  7. #include <lualib.h>
  8. #include <lauxlib.h>
  9. }
  10. int _tmain(int argc, _TCHAR* argv[])
  11. {
  12. lua_State *L = lua_open();
  13. luaL_openlibs(L);
  14. const char *buf = "print('Hello World')";
  15. luaL_dostring(L,buf);
  16. lua_close(L);
  17. getc(stdin);
  18. return 0;
  19. }

5,设置默认的项目,否则要去手动运行生成的可执行文件testlua.exe (见附图)
     Solution -> Properties -> Common Properties ->Startup Project ->Single startup project
     把默认的lua改为testlua
按F5或Ctrl+F5,将会在控制台中输入了Hello World。

来自:http://blog.csdn.net/berdy/article/details/7925040

附图1:在一个项目中添加另一个项目

附图2: 设置默认项目

附图3:静态库

       或者       
 
 
http://blog.csdn.net/appletreesujie/article/details/12065369 

VS2010编译、调用Lua程序的更多相关文章

  1. VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...

  2. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

  3. linux下C调用lua的第一个程序

    linux下C调用lua的第一个程序 linux的环境是Fedora 18,运行在VM workstation中,以开发模式安装,自带了lua 5.1.4,可以在命令行上直接用lua命令进入到lua环 ...

  4. cmake编译dcmtk,并利用vs2010 进行开发mfc 程序

    这几天要处理 医学图像数据,经同学推荐 采用 dcmtk 关于 编译 dcmtk 是可参考如下blog 1. http://blog.csdn.net/okaimee/article/details/ ...

  5. Java调用Lua脚本(LuaJava使用、安装及Linux安装编译)

    依赖包(附件有下载): 包名 类型 操作系统 luajava-1.1.jar jar ALL libluajava-1.1.so .so linux luajava-1.1.dll .dll wind ...

  6. 再谈VS2010编译更高平台vs2012(v110),vs2015(v140)的objectARX程序

    前段时间我贴了一篇vs2010批量编译vc6~vs2008的ARX版本,实际上那一篇是我在研究vs2010编译v110,v140平台的附带收获,正应了那句话,有心栽花花不开,无心插柳柳成荫,因为vs2 ...

  7. Ubuntu系统下实现Android工程调用独立编译的C++程序和GMP、PBC库

    目的: 实现使用C++编写代码供Android工程调用.C++代码中可以使用STL库,也可以使用常用的由源码编译生成的库,如PBC.因为PBC是基于GMP库的,所以这里只记录了GMP和PBC库的编译安 ...

  8. 调用Visual Studio的cl.exe编译C/C++程序

    @ 目录 调用Visual Studio的cl.exe编译C/C++程序 前言 1.查看VS的路径 2.添加环境变量 3.查看设置是否生效 4.配置Notepad++ 调用Visual Studio的 ...

  9. VS2010编译Qt程序失败------error LNK1123: 转换到 COFF 期间失败:

    error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏使用VS2010编译VC++项目的时候可能会出这个问题. 据说升级到SP1后可能问题解决,但是下载量太大,目前没有得到证实. ...

随机推荐

  1. 用java读取properties文件--转

    今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享.     下面直接贴出代码:java类 public class Mytest pub ...

  2. Android(java)学习笔记172:BroadcastReceiver之 Android广播机制

    Android广播机制 android系统中有各式各样的广播,各种广播在Android系统中运行,当"系统/应用"程序运行时便会向Android注册各种广播.Android接收到广 ...

  3. 在Silverlight中使用async/await

    现在 async/await 大行其道,确实,有了 async/await ,异步编程真是简单多了,个人觉得 async/await 的出现,给开发者还来的方便,绝不亚于当年 linq 的出现. 但要 ...

  4. RedHat7配置Nginx实现多域名虚拟主机的SSL/TLS认证(实现单IP以不同证书服务于不同域名)

    以RedHat7(64bit)平台为例 如果RedHat源没法用,可以使用EPEL源 # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-rel ...

  5. git使用备忘

    简单的记录下现在使用git的时候,暂时或者常用到的命令,纯粹自己备忘,没用到过的命令就不写了,日后有用到了在补充. 1.把远程仓库克隆到本地:git clone 远程地址 2.分支操作 新建分支:gi ...

  6. 多线程(Thread),其实很简单!

    目录:  1:线程简介 2:怎么操作线程      3:Thread的常用方法 4:简单的获奖机     5:应用程序域   线程:是Windows任务调度的最小单位.线程是程序中的一个执行流,每个线 ...

  7. PS软件之,快速的修改图片你的尺寸

    进入 -- 图像 --- 图像尺寸 -- (前面两个去掉后,只剩下最后一个选项的时候就能够任意的修改图像的尺寸)

  8. Java String.format 自动补全不够的位数

    http://www.blogjava.net/java-blog/articles/189040.html

  9. Android EditText的输入监听,输入字符的动态获取

    http://itindex.net/detail/38974-android-edittext-%E7%9B%91%E5%90%AC 有时候我们可能会用到时时的监听EditText输入字符的时时监听 ...

  10. SET NOCOUNT 的意义.

    SET NOCOUNT 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息. 语法 SET NOCOUNT { ON | OFF } 当 SET NOCOUNT 为 ON 时, ...