自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (7)
  • 收藏
  • 关注

原创 (C++)跨平台日志库——yaolog v1.6

写代码总免不了要看日志。就C++而言,不少程序员只是简单地用printf来输出日志,或者临时写个日志类,log4cpp等比较“重型”的日志库的使用率反而并不怎么高(至少从我经历的项目而言)。也许是不想为不需要的功能付出额外的学习成本,但无论如何,对于通用类别的工具采取临时手写的方式来应付,从长远考虑,在功能性和健壮性方面是得不偿失的。写这个日志类(yaolog)的最初的想法只是为了实现“输出到文件

2013-01-15 10:42:32 3762 7

原创 通过javascript判断本地是否安装了客户端

我们都知道js被设计为不可访问本地资源,因此理论上js无法知道本地是否安装了特定程序。但是凡事无绝对,对于IE,给出如下两种思路:    1 ActiveX       在页面中用js去new一个指定的ActiveX对象,如果抛出异常,则说明目标客户端没有安装。这种方法的问题在于容易弹出安全性提示,但是经过我的试验,编写ocx时实现isafeobject接口并在注册表中写入特定键值,就可以

2013-01-13 20:35:52 3985

原创 (C++)读写注册表的类

直接用API读写注册表还是比较麻烦的,于是就封装了一个类来操作,类声明如下:class rw_reg{public: static BOOL GetRegStr( tstring strKeyName, tstring strValueName, tstring& strValue, DWORD dwMaxLength = 260, HKEY hKeyPa

2013-01-13 15:38:05 2753

原创 (C++)带有元数据信息的结构体

C++的结构体和类不像C#和java那样有完整的元数据信息,但是我们可以用宏和模板近似地做到这一点。代码在这里:点击下载    例如PersonInfo是一个超级结构体,那么可以这样使用:#include "PersonInfo.h"#include int main(){ PersonInfo info; info.name = "Jack"; info.age = 4

2013-01-12 20:00:04 3454

原创 (C++)注释末尾的反斜杠

今天用GCC编译遇到如下警告(使用了-Wall选项):warning: multi-line comment [-Wcomment]    导致警告的代码是一个函数声明上面的注释,如下:// this arg is a driver, for example c:\// and you can ...    查了下原来在注释行的末尾加上反斜杠会导致编译器连接本行和下行(和宏定

2013-01-09 17:44:02 6925 3

原创 (C++)计算事件发生可能性的函数

比如你要想在软件里附加一个彩蛋给用户玩,每次软件启动后只有5%的机率会触发这个彩蛋。那么怎么根据5%这个规定来知道某次是否触发呢?于是就有了下面这个函数:bool GetBoolByProbability(int numOfHundred){ assert(numOfHundred >= 0 && numOfHundred <= 100); return numOfHundred =

2013-01-08 15:03:34 1116

原创 (C++)使用自定义的异常类获取源代码信息

如果在项目中使用异常机制,我们一般会定义一个类继承自std::exception,在throw时附带上自定义的信息。但是有时我们还希望知道某个异常是从何处抛出的,也就是源代码的文件,函数,行号信息。于是就写了这个ExceptionEx类,继承该类就能够很容易地获取上述信息。ExceptionEx的实现在这里:ExceptionEx        用法如下:#include #incl

2013-01-06 18:24:52 2857

原创 (C++)UrlEncode的标准实现

关于UrlEncode的实现(C++),网上有很多不同的版本,对需要编码的字符集的选取并不统一。那么到底有没有标准呢?答案是有的,参见wiki    绝对不编码的,只有字母、数字、短横线(-)、下划线(_)、点(.)和波浪号(~),其他字符要视情况而定,所以一般性的urlencode只需保留上述字符不进行编码。    下面给出实现:unsigned char ToHex

2013-01-05 14:12:07 43108 3

原创 在windows的cmd中使用adb的颜色问题

在windows的cmd中,用adb连接手机时,ls命令有时会显示乱码,原因是cmd无法解析颜色代码,所以先执行这一句就能正常了:alias ls="ls --color=never"

2013-01-04 16:15:43 3944

原创 (C++)定制一个可输出更多信息的assert

我们经常用assert来除错,它能告诉我们断言失败的代码行和表达式。但是,有时我们希望能在assert失败时得到更多信息,例如:当GetLastError()  != ERROR_SUCCESS时,还希望将这个ErrorCode到底是多少也显示在assert弹出的对话框中。    废话就不多说了,直接上代码:#pragma once///////////////////////////

2013-01-04 14:53:46 3743

yaolog v1.6(很有特色的C++跨平台日志库)

易用而又强大的C++跨平台日志库,可以输出日志到控制台窗口,文件,http服务器。特点: # printf风格的接口,包括LOGA__, LOGW__, LOG__, LOGBIN__,LOGBIN_F__ # 日志附加信息包括时间,源代码文件,函数,行号 # 每个日志对象都有单独的行为 # 在程序运行时通过配置ini文件动态改变日志行为 # 可以输出到控制台窗口,文件,http服务器 # 线程安全 # 跨平台(windows, linux)

2013-04-01

yaolog v1.5(很有特色的C++跨平台日志库)

易用而又强大的C++跨平台日志库,可以输出日志到控制台窗口,文件,http服务器

2013-01-25

yaolog(很有特色的C++跨平台日志库)

易用而又强大的C++跨平台日志库,可以输出日志到控制台窗口,文件,http服务器

2013-01-14

C++读写注册表的类

封装了一个C++读写注册表的类,附带有测试用例

2013-01-13

SuperStruct

带有元数据信的C++的结构体(字段个数,字段名称,字段类型),使用宏和模版实现,vs和gcc测试通过。

2013-01-12

ExceptionEx_

自定义的异常基类,继承该类后可以在抛出异常时方便地得到源代码信息

2013-01-12

ExceptionEx

自定义的异常基类,继承该类后可以在抛出异常时方便地得到源代码信息

2013-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除