- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 测试发布
/*:Author: David Goodger (goodger@python.org):Id: $Id: html4css1.css 7614 2013-02-21 15:55:51Z milde $:Copyright: This stylesheet has been placed in the public domain.Default cascading style
2016-10-29 14:34:57
329
原创 工艺——使用类进行指针转换
场景:当使用外部函数时,会遇到参数类型和内部使用的类型不同,如内部使用int,参数使用short。特别是作为输出参数的指针类型。如:void ExternalFunc(short* value);void InternalFunc(int* value) { ... short valueIn = *value; ExternalFunc(&value
2014-12-06 21:51:14
658
原创 静态库中全局(静态)变量的初始化问题
C++全局变量的构造函数和析构函数执行一些main调用前的初始化工作和main调用后的清理工作。如果这种技巧使用得到,可以使代码更加简洁,但该技巧较为复杂,本文介绍一种使用该技巧的工厂模式和它在静态库中使用的问题。 基类TestClass中定义了创建函数Create,通过该函数可创建TestClass的各个子类。其实现方式是维护子类的创建函数列表。在TestClass::Creat
2014-01-08 22:45:03
5763
原创 Windows下Haskell库的安装
本文记录了在Windows下安装Haskell(ghc)的经验,Windows版本问W7。 在Windows下,安装ghc的主程序较为容易,标准的windows程序安装模式。但库的安装较麻烦,它的安装风格则更类似于linux风格,部分库有依赖性,不仅依赖其他Haskell库,也依赖第三方库。有些库不直接支持windows或者在Windows下没有经过良好的安装测试。具体问
2013-11-09 13:02:08
7569
原创 设计是权衡——实现多版本函数的代码中宏的位置
比较下面两种代码:代码一:#ifdef MY_MACROvoid MyFunction(...) { ......}#elsevoid MyFunction(...) { ......}#endif代码二:void MyFunction(...) {#ifdef MY_MACRO ......#else .
2013-10-31 21:43:01
644
原创 不使用LPCTSTR类型转换
问题来自下面的一段代码: sprintf(port, “COM4”, 3); h = CreateFile((LPCTSTR)port, ...);上述代码在一个VC工程中正常运行,在另一个却 不行。一个为多字节配置,一个为Unicode配置。但真正的问题是LPCTSTR类型转换,取消了类型检查。
2013-10-28 20:59:28
557
原创 统计代码覆盖度
本文记录一次添加代码覆盖度统计的经历。 工程的开发环境是Windows,采用VS编译器。在网上搜索没有找到合适的工具(免费的工具)。因此使用GCC的GCOV功能完成统计,感谢GCC和MinGW。 第一步:使用MingW编译工程,可直接编写Makefile,也可采用eclipse的CDT或者CMake工具。其关键是加入编译参数-fprofile-arcs -fte
2013-10-11 19:17:35
1109
原创 设置IP的python程序
修改IP(有线)是件麻烦的事情,特别是抱着笔记本在不同局域网间来回走动。本文介绍修改IP的Python3程序,并介绍些使用经验。代码如下(setip.py):'''使用Windows的netsh命令进行网络设置setip.py [config] '''import sys import os def setDns(config): '''config = (name,d
2013-09-24 20:30:51
1882
原创 感悟
好代码的标准:1. 调试代码时,原本想step in,不小心step over。不退出调试,而是将执行位置拖至step in的位置,再次执行。两次执行的逻辑不变的代码为好代码。
2013-07-18 22:55:29
457
原创 小品——在代码中加入SVN的版本号
TortoiseSVN:参考TortoiseSVN(1.8)的帮助文件5.3节 Keyword Example。首先编写模板文件version.tmpl。const char* Version() { const static char s_version[] = "1.0.$WCREV$"; return s_version;}然后再执行命令:SubWCRev.
2013-07-18 22:28:22
701
原创 简易加密工具
为了管理个人信息如账号密码,用Python写了一个简易的加密工具。思路是使用dict类型编辑个人信息,然后使用pickle将dict转换成字节流,再使用3des算法将字节流加密,最后将加密后的数据写入文件,解码的步骤刚好相反。 工具下载地址:http://download.youkuaiyun.com/detail/lemene/5215233 代码分成三部分:test_pgw.py、pg
2013-04-03 00:01:28
602
原创 测试用例的配置文件
在公司写了一个测试程序,用于测试一个库。库的本身是硬件无关的,但它的运行逻辑需要连接设备。因此测试程序的主要工作是模拟设备的各种行为,并测试在这些行为下库能否正确处理。测试用例的特点是需要配置的行为在单个测例中较多,但在不同测例中的差异不大。因此设计了存放通用配置的文件,每个测例的配置项继承该文件,并做必要的修改。具体的XML描述如下:
2013-01-29 22:03:18
1036
原创 合并相似算法
阅读历史代码遇到这样一段,大致结构如下:bool Check(..., int type) { // 代码 if (type == 1) { // 较长代码 } // 代码 if (type == 2) { // 较长代码 } // 代码}这段代码是检查两种格式的数据是否合法,
2013-01-16 21:58:59
597
原创 考虑变量生命周期
问题代码:void Function(void){ XXXList* list = NULL; while (cond) { ... // 对列表进行了操作 XXXList_Free(list); }}显示上述代码产生悬空指针,一般认为问题在于没有遵循Free后指针置NULL的原则,应修改为:
2012-12-13 21:50:09
379
原创 cocos2d-x学习笔记——cocoa目录
cocoa目录存放基本类型和工具。CCAffineTransform功能:二维坐标点平移、缩放等变化功能。CCArray功能:类似std::vector,存放CCObject类型。CCAutoreleasePool功能:自动释放的CCObject对象池。疑问:CCPoolManager为什么需要多个CCAutoreleasePoolCCDictionar
2012-09-18 21:21:51
860
原创 cocos2d-x学习笔记——小心文件大小写
现象:做了一个简单例子,在Windows下能够正常运行,在将其编译成apk后,运行则报告在CCNode::addChild函数中触发了CCAssert断言。原因:经过查找,一个图片文件的大小写有误,Windows系统中不区分文件大小写,而Android区分,从而导致创建某个对象失败,返回空指针。疑惑:编译的apk怎么会触发CCAsert断言?初步查看platform/android/CCP
2012-09-16 21:40:48
697
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人