随笔分类 - C++程序设计语言
C++程序设计语言语法、技巧、心得分享
摘要:简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Wi
阅读全文
摘要:存储的方式 浮点型数据在内存中的存储机制与整型数据不同,有舍入误差问题,在计算机中用近似表示任意某个实数。其表示形式是一个整数或定点数(即尾数)乘以2的整数次幂的到,类似基于10的科学计数法。 精度问题 float类型小数点前后加起来有效数字只有6位,当给定的float有效数在6位以内转换为字符串时
阅读全文
摘要:[点击这里下载zlib1.2.8源码](http://zlib.net/zlib128.zip) [点击这里下载zlib1.2.8编译动态库](http://zlib.net/zlib128-dll.zip) #下载源码库# 从上面给出的源码路径下载zlib源码库,如果不想自己编译,可以使用上面给出
阅读全文
摘要:"boost下载地址" 编译 生成bjam.exe 1.下载boost源码,可以直接使用上面给出的1.60.0版本 2.解压下载到的boost文件,例如解压到 x:\boost_1_60_0 3.使用VisuaStudio编译。打开菜单找到Visual Studio工具,打开Developer Co
阅读全文
摘要:以前很少调用MinGW的运行时库,现在用到一个项目,用到了glib和gettext等。遇到了一个问题,折腾了一个下午。gettext的运行时库之一是intl,MinGW只提供了.dll.a,于是参考了网上其它的介绍,像其它.lib一样调用#pragma comment(lib, "libintl.d...
阅读全文
摘要:stdint.h文件是C99的标准头文件,默认情况下VC是不支持的,所以在使用过程中肯定会碰到 "No such file or directory"的问题。*解决办法*1.从网盘上下载一个源码文件 [网盘链接](http://yunpan.cn/cKFuTptDhtdrb) (提取码:5c42)...
阅读全文
摘要:### 1.缘由一直对log4cpp非常有好感,就在自己的项目中集成了log4cpp1.1.1版本,并围绕着它建立了一系列的封装函数方便外部调用。写完了一个测试代码后,忽然想看看自己写的程序有没有内存泄露问题。在打开了内存检查参数后发现,有程序退出时有不少内存没有释放。由于我的测试程序很小,所以很快...
阅读全文
摘要:###1.起因看到官方网站上的log4cpp的代码已经更新到了1.1.1,而我目前使用的1.0.3版本,所以想使用下最新版本。在使用过程中发现相对于老版本,新版本的变化还是比较大的,特写下此文记录下。###2.环境部署其实新版本很早就已经发布了,只是很久没更新所以才会落后,新版本可以从 [官方网站]...
阅读全文
摘要:#前言好久没有来更新博客了,这次就写一下在实际工作过程中,利用Htmlayout引擎开发自定义图表控件的东西吧。Htmlayout是一个非常棒非常轻量级的HTML引擎,利用HTML+CSS的搭配完成了静态页面布局的元素。可以通过访问[官网](http://www.terrainformatica.c...
阅读全文
摘要:#说在前头很久没有碰Delphi的东西了,今天有个朋友让我帮他将一个Delphi中已经实现的功能在VC中进行使用,虽然后来又用VC的方式实现了该功能,但是在实现过程中想到了这样的调用方式,特写下本文以供以后翻阅。#开发环境本次实践用到了Delphi环境和Delphi环境**VC开发环境**Micro...
阅读全文
摘要:#起因在工作过程中发现需要让Lua支持json库,如果直接用lua版本的json解析器的话效率不够高,所以找了一个用C实现的json库--***cjson***,据说此库比lua版本的效率高10-20倍。但是cjson是一个安卓的库,所以需要将其移植到VC中进行使用。#环境配置开发工具:VS2012...
阅读全文
摘要:在引用了第三方数据时,数据源通过转义,将json的key上双引号给去掉了。在PHP开发时,可以通过正则表达式替换方式来补充丢失的双引号,处理代码如下```function ex_json_decode($s, $mode=false) { if(preg_match('/\w:/', $s)) ...
阅读全文
摘要:#问题描述今天在帮同事解决问题时,发现了这个比较有意思的现象,特记录下来备忘。问题是这样的,同事开发的是应用程序动态库模块,通过应用的框架中以接口方式供外部使用。然后他想对这些接口生命周期进行控制,从语法角度上约束使用者使用的手段。因此他作出了以下修改:*1.增加接口的析构函数,并将析构函数设定为保...
阅读全文
摘要:在Windows平台下,sizeof(wchar_t) = 2,但是在安卓模拟器中打印出来却是4。由此可见wchar_t类型与int类型类似都是与平台相关的系统类型,其具体长度受系统影响明显。为了解决这个问题,我用int16来替代wchar_t类型的应用场合。以后自己做系统时要引以为戒。
阅读全文
摘要:本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。一 new运算符和operator new(): new:指我们在C++里通常用到的运算符,比如A* a = new A; 对于new来说,有new和::new之分,前者位于std operator new():指对new的重载形式,它是一个函数,并不是运算符。对于operator new来说,分为全局重载和类重载,全局重载是void* ::operator new(size_t size),在类中重载形..
阅读全文
摘要:在开发过程中我们经常需要使用到获取数组长度的函数,一般比较常用的是采用宏的方式来获取#define ARRAY_LEN(x) (sizeof(x) / sizeof(x[0]))在C++中我们可以通过模板的方式来获取数组的长度template int array_length(const T (&arr)[N]){ return N; } 也可以使用更加简单的模板定义template int array_length(const T& p) { return sizeof(p)/sizeof(p[0]);}思考: 这里为什么不能直接使用函数的方式呢?通过代码实例可以看...
阅读全文