起因

在工作过程中发现需要让Lua支持json库,如果直接用lua版本的json解析器的话效率不够高,所以找了一个用C实现的json库--cjson,据说此库比lua版本的效率高10-20倍。但是cjson是一个安卓的库,所以需要将其移植到VC中进行使用。

环境配置

开发工具:VS2012

扩展库:Lua5.1 cjson2.1.0

移植步骤

  • 建立工程

    使用VS2012新建一个控制台工程,这个我就不在这里累述了,相信大家都会。什么?你不会?不会就去学嘛~
  • 加入源码

    我将所有的代码放在了整个工程的同级目录下,新建了一个thrid文件夹,并且将Lua、cjson的源码放了进去。
  • 设置工程属性

    因为cjson直接包含使用Lua的头文件,而我又不想对代码进行修改,所以我直接修改了工程里面的包含目录,将Lua和cjson的目录加了进去,一了百了。

修改移植代码

  • 修改点一

    提示inline之后应该输入"(",原因未知,估计是编译器规则不一样导致。反正去掉内联关键字对程序也没什么影响,去掉就去掉吧。

    移植cjson到windows下编译的更多相关文章

    1. [转] Windows下编译OpenSSL

      简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

    2. Windows下编译objective-C

      Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

    3. 在Windows下编译FFmpeg详细说明

      MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

    4. 如何在WINDOWS下编译BOOST C++库 .

      如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

    5. 在Windows下编译OpenSSL(VS2005和VC6)

      需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

    6. windows下编译java源文件的编码错误

      import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...

    7. Windows下编译SDL

      Windows下编译SDL的理由我就不多说了,无论用VS来编译或调试SDL库都是很方便的.而且SDL源代码中也包含了VC工程,你所要做的只是解压VC工程,进行适当的配置,然后编译.调试. 编译SDL大 ...

    8. Windows下编译安装 FFmpeg

      在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在wind ...

    9. windows下编译php7图形库php_ui.dll

      CSDN博客 具有图形化编程才有意思,这几天看到了php ui 图形扩展,只是现在只能下载php 7.1的 本次教程编译php7.2.6的 php ui 要是linux下编译起来比较简单 但是 win ...

    随机推荐

    1. JS中使用正则表达式替换对象里的大小写

        function parse(obj){ var str = JSON.stringify(obj); var dataObj = str.replace(/Name/g, "name& ...

    2. IE8兼容border-radius.

      我们知道,CSS3新增的很多简洁优美的属性,比如border-radius.box-shadow.border-image.gradients.RGBA...因为这些属性的出现,我们可以很方便的就写会 ...

    3. UE4 多线程(一)

      UE4中使用多线程的有两种方式,一种方式就是使用FRunnable和FRunnableThread,另一种方式是Task Graph System.Task Graph System有时会占用游戏线程 ...

    4. 解决myeclipse10.1导出War包出错:Security Alert:Integrity check error

      解决myeclipse10.1导出War包出错:Security Alert:Integrity check error 解决myeclipse10.1不能导出war包报 ============== ...

    5. PHP数据核心:Zend HashTable详解

      最近看了篇关于php内的hashtable的文章,PHP数据存储的核心,各种常量.变量.函数.类.对象等都用它来组织的.转载地址 http://www.phppan.com/2009/12/zend- ...

    6. python_hello word!

      什么是编程? --模拟现实世界,跨时间,地点,不受外界坏境干扰到的虚拟现实世界,数字化的可定制化的世界 编程语言有哪些? python ,java,php  ,c++,等 python开发环境准备工作 ...

    7. tp5中设置指定的log日志,可单独建立文件夹和文件名

      1:在D:\www\tp5\thinkphp\library\think\Log.php中添加下列代码.可在runtime文件夹下建立tlogs文件夹(可自定义). /** * [payLog 支付日 ...

    8. 【转】fread函数详解

      “fread”以二进制形式,从文件读出数据. 语法1:[a,count]=fread(fid,size,precision) 语法2:[a,count]=fread(fid,size,precisio ...

    9. JavaSE基础篇—数据类型和运算符

         本章知识点内容概括 数据类型:  1.基本数据类型 数值型 整数类型 byte(128~127),占1个字节的储存间 short(-2^15~2^15-1),占2个字节 int(默认类型-2^3 ...

    10. dfs 与 dijkstra 总结

      Dijkstra: //寻求加权图起始点到各个节点的最短路径 for i <- 1:n do distance[i] <- INF; distance[0] <- 0;//起始节点距 ...