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

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

2013-01-15 10:42:32

阅读数 3190

评论数 7

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

我们都知道js被设计为不可访问本地资源,因此理论上js无法知道本地是否安装了特定程序。但是凡事无绝对,对于IE,给出如下两种思路:     1 ActiveX        在页面中用js去new一个指定的ActiveX对象,如果抛出异常,则说明目标客户端没有安装。这种方法的问题在于容易弹出安...

2013-01-13 20:35:52

阅读数 1757

评论数 0

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

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

2013-01-13 15:38:05

阅读数 1944

评论数 0

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

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

2013-01-12 20:00:04

阅读数 2240

评论数 0

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

今天用GCC编译遇到如下警告(使用了-Wall选项):warning: multi-line comment [-Wcomment]     导致警告的代码是一个函数声明上面的注释,如下: // this arg is a driver, for example c:\ // and yo...

2013-01-09 17:44:02

阅读数 4297

评论数 1

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

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

2013-01-08 15:03:34

阅读数 750

评论数 0

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

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

2013-01-06 18:24:52

阅读数 2513

评论数 0

(C++)UrlEncode的标准实现

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

2013-01-05 14:12:07

阅读数 33438

评论数 3

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

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

2013-01-04 16:15:43

阅读数 2044

评论数 0

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

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

2013-01-04 14:53:46

阅读数 2285

评论数 0

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