- 博客(31)
- 资源 (41)
- 收藏
- 关注
原创 C++字符串操作总结
C++标准库中提供了一系列的模板类用来对字符串流的输入、输出和输入\输出操作,这些操作都是基于C++的string类,即它们都是输入、输出到一个string对象,当然它们也都提供了对应的宽字符集操作的版本。在C++开发过程中通常使用sstream对字符串进行操作,这里还存在sstream的一个兄弟版本strstream,它也可以提供类似功能的字符串操作。区别:sstream与strst
2013-03-29 11:31:47 1495
原创 VS系列IDE(2005、2008等)下使用cppunit的方法及使用示例
一、 准备cppunit,1、 下载并编译cppunit,这里以1.21.1为例,下载之后如图1所示为:图12、 进入cppunit-1.12.1\src编译VC\VS工程文件,可能刚开始时候没有VS的工程文件sln,此时直接打开VC的工程文件,打开后进行转换,之后就会出现VS的工程文件,如下图2所示:图23、 编译之后即会在目录cpp
2013-03-27 19:40:37 1521
转载 在VS2005下搭建和使用CppUnit
一、单元测试与CPPUNIT简介 几乎每个开发人员都写过测试代码,但是往往这些代码不系统,也没有良好的管理,同时在测试代码编写过程中也有很多重复的劳动,比较繁琐。在一个软件开发过程中,往往会进行很多修改,迭代开发的模型随处可见,如何验证程序的功能、性能和结构是否符合要求是一项重要的工作。 单元测试是属于白盒测试和结构性测试,一般由开发人员开展,当然如果有好的测试工具支持,测试人员甚至最
2013-03-26 13:36:37 1079
原创 linux下C\C++ 开发小笔记
1、linux下C的标准库中没有提供itoa、itof等,但可以使用sprintf或snprintf来代替,例如:int iNum = 123456;char tmpBuf[256];itoa(iNum, tmpBuf, 10);则可以按照如下方式使用:sprintf(tmpBuf,"%d",iNum);snprintf(tmpBuf,256,"%d",iNum
2013-03-25 16:17:18 1291
原创 linux环境下调试嵌入式设备时出现Aborted、segmentation fault、卡死的问题以及关于指针使用的一点想法
linux环境下调试一些嵌入式设备时出现Aborted、segmentation fault、卡死的问题,这些问题可能的原因为:1、Aborted的问题,例如:# ./logUtils0322[UnitTest.cpp]:will init log[cfgfile.cpp]: logfile open suc[LogUtils.cpp]:NOTICE OPen configu
2013-03-25 11:57:26 4973
转载 MFC工程使用flash控件
<!--p {margin-bottom:0.21cm}-->利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢?^_^,其实,要做到这点也不难。在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。 我们分为两步来走: 一、将flash动画嵌入自己的程序中,这一点比较简单,使用sh
2013-03-21 08:20:57 1831
原创 关于C语言可变参数函数的一些研究和总结
可变参数函数是指函数参数的个数、类型等是不固定的,需要在用户调用过程中,根据实际传入的参数来确定其类型、个数等信息。例如:可变参数函数printf可谓是在C开发过程中使用最多的标准输出库函数之一,因此有必要对其原理进行了解以便更好使用之,同时在一些开发过程中可能还需要自己来实现一个可变参数的函数。本文主要是关于C中可变参数函数的一些总结,包括可变参数的实现原理及其实现方式。 可变参数函数的
2013-03-19 17:29:49 1298
转载 字节对齐的学习笔记
原文地址:http://bbs.csdn.net/topics/190115138一、问题的提出 两年之前我写过一篇可变参数学习笔记,里面曾经简单的解释过一句: 代码 ((sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1)) 的作用是在考虑字节对齐的因素下计算第一个可变参数的起始地址。 当时限于时间和水平,未能做
2013-03-19 16:31:29 1146
转载 在VS(2005、2008、2010)的MFC工程中添加flash控件
一、准备工作第一步:下载并安装AdobeFlash Player。从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的FlashPlayer(大约为2.66M),并安装。对于Windows 32位系统,其默认安装目录为:C:\WINDOWS\system32\Macromed\Flash\;对于64位系统,为:C:\Windows\SysWOW
2013-03-18 18:15:30 3039
转载 MFC如何调用Flash控件
新项目中需要在mfc框架中播放swf,因此决定使用flash控件:第一步:在本机安装flash10Flash activex控件一般安装在用户系统目录下:C:\WINDOWS\system32\Macromed\Flash\其中大版本号用数字表示,如9,10,11等,小版本号用小写字母表示,如a, b, c, d, e。如最新稳定版本为:Flash10e.ocx。第二步:通过r
2013-03-18 17:44:17 2387
转载 ShockwaveFlash控件详解
属性:1.AlignMode (读写)语法:AlignMode As Long说明:对齐方式,与 SAlign 属性联动。当控件的 长宽比例与影片不一致且 WMode 不为 ExactFit 时,影片(没有被放大的)在控件中显示的位置可用该属性调整。 该属性值由标志位组成。如图,将该属性值(二进制)中相 应的位标记为 1 就设置了相应的对齐方向。属性值与相应的对齐方式。后面括号里是二进
2013-03-18 17:43:26 2362 1
转载 fileno函数与ftruncate函数
fileno()函数功 能:把文件流指针转换成文件描述符相关函数:open, fopen表头文件:#include 定义函数:int fileno(FILE *stream)函数说明:fileno()用来取得参数stream指定的文件流所使用的文件描述词返回值 :返回和stream文件流对应的文件描述符。如果失败,返回-1。范例:#include mai
2013-03-18 10:43:22 1246
原创 嵌入式C/C++开发过程中日志输出的一点思考
在开发过程中,需要经常输出日志以协助调试和分析问题,一个良好的日志输出能够快速的帮助我们定位和分析问题。在一些linux平台嵌入式开发过程中,开发过程中对单步调试支持的并不好,它的调试很大一部分是借助于日志来完成。对最近一段时间嵌入式开发的反思与总结,个人感觉,日志输出时尽量做到以下几点: 1、个人认为可以把日志内容分为:定位日志和错误报告日志,除此两者之外的其他调试日志内容在调试
2013-03-18 10:17:56 3160
转载 C/C++中指针和引用之相关问题研究
一、基本知识指针和引用的声明方式:声明指针: char* pc;声明引用: char c = 'A' char& rc = c;它们的区别:①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改
2013-03-15 17:52:37 1043
转载 c++ 应用socket实现C/S端文件的传输
人从生到死的生活生计每一步都应是一种隔着柜台的现钱生意关系,若是我们不是如许登天堂的话,那么天堂也就不是为经济学所安排的处所,那儿也就没有我们的事了。起首是办事器端,大致说下贱程:办事器创建线程去向理惩罚应答accept(),当接管到客户端连接恳求时,起首获取要发送的指定的文件数据总大小给客户端,接着就是轮回读取要发送的文件数据流向客户端发送文件数据,每次都断定轮回读取到的数据实际大小,当实际读取
2013-03-15 15:59:36 2411
转载 C++Socket编程总结
使用socket写代码主要是要看自己的需求是什么。如果通信时,内容很重要就要使TCP方式。如果用户数太多,可能就要使用UDP方式了。在TCP模式下,最简单的方式就是这样的,使阻塞方式:服务端:1.初始化socket环境,创建socket2.梆定一个端口3.开始监听4.接收客户端5.接收到客户端之后,使用这个socket来与这个客户通信#include "
2013-03-15 14:47:08 1368
原创 一个自己实现的简单的智能指针模板类
一个智能指针的小程序,使用模板函数开发,附带测试程序代码如下:///////////////////////////////////////////////auto ptrtemplateclass AutoPtr{ struct t_ptr { T* __ptr; int __counter;
2013-03-14 16:33:50 1368
原创 C字符串替换函数
下面的函数改写自某个前辈所写的函数:/***************************************************************************** 函数名:_ReplaceStr* 作者: * 日期: * 输入参数:char* sSrc 原字符串* char* sMatchStr 特征字符串*
2013-03-14 10:05:28 2092
原创 linux下使用c进行线程操作
linux环境下,使用C语言创建一个线程的代码如下所示: pthread_attr_t attr_r; pthread_attr_init(&attr_r); pthread_t threadid_r; int tmp = 0; tmp = pthread_create(&threadid_r,&attr_r,_test_Read,NULL); if(tm
2013-03-13 17:33:59 1129
原创 C++虚函数表的总结
1、 C++的多态主要是通过虚函数表来实现的:(1)编译器为每个虚基类生成一个虚函数表,但是类中只包含该虚函数表的首地址;(2)每个继承自需基类的子类都继承了虚基类的虚函数表。(3)虚函数表实际上就是一个内存块,在编译时属于代码段的一部分,该类的所有对象均共享虚函数表。 例如有如下基类struct IX{virtual void _stdcall Fx1()
2013-03-13 10:36:55 1362
原创 选择排序
bool CHandleData::SortData(int* pData, int iLen){ if (NULL == pData || iLen <=0) return false; int iCurPos = 0, iSearchStart = 0 , iSelectedPos = 0; for(iCurPos=0; iCurPos<iLen; ++iCurPos) {
2013-03-12 15:17:49 854
转载 C语言标准库中常见字符串处理函数
void *memccpy (void *dest, const void *src, int c, size_t n);从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。void *memcpy (void *dest, const void *src, size_t n);从s
2013-03-11 14:21:34 2388
转载 仓央嘉措诗集
那一天那一天,我闭目在经殿的香雾中,蓦然听见你颂经中的真言;那一月,我摇动所有的经筒,不为超度,只为触摸你的指尖;那一年,磕长头匍匐在山路,不为觐见,只为贴着你的温暖;那一世,转山转水转佛塔,不为修来世,只为途中与你相见只是,就在那一夜,我忘却了所有,抛却了信仰,舍弃了轮回,只为,那曾在佛前哭泣的玫瑰,早已失去
2013-03-10 23:04:58 1818
原创 <string>与<string.h>的区别
在C++开发过程中经常会遇到两个比较容易混淆的头文件引用#include 和 #include,两者的主要区别如下:#include.h>是C语言的标准库,主要是对字符串进行操作的库函数,是基于char*进行操作的,例如常见的字符串操作函数stpcpy、strcat都是在该头文件里面声明的。#include是C++语言的标准库,该库里面定义了string类,你可以包含这个头文件,然后定义一
2013-03-08 08:38:23 2483 2
转载 浅谈时间函数gettimeofday的成本
我们在程序中会频繁地取当前时间,例如处理一个http请求时,两次调用gettimeofday取差值计算出处理该请求消耗了多少秒。这样的调用无处不在,所以我们有必要详细了解下,gettimeofday这个函数做了些什么?内核1ms一次的时钟中断处理真的可以支持tv_usec字段达到微秒精度吗?它的调用成本在i386/x86_64体系架构上代价一样吗?如果在系统繁忙时,频繁的调用它有问题吗?get
2013-03-07 10:05:26 1626
转载 关键字Restrict
<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->restrict是c99引入的,关键字restrict只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(baseon)该指针的,即不存在其它进行修改操作的途径。也就是说它只是告诉编译器,这个指针所指向的内容,只有这个指针可以修改。但事实上也
2013-03-07 09:27:42 1347
原创 linux下的常用时间函数总结
1、Unix系统一直使用两种不同的时间值:“日历时间”和“进程时间”1.1、日历时间,日历时间是从国际标准时间公元1970年1月1日00:00:00到现在所经历的秒数;此时间精度为秒。 系统用time_t保存这种时间值,如果时间要求不是非常精确则可以使用此时间,例如记录文件修改的时间。 这里的time_t是个长整型数值,可以用函数:time_t time(time_t* c
2013-03-07 01:55:09 1404
原创 linux多线程加解锁
1、动态方式使用互斥量,该类型的互斥量在定义时不进行初始化,需要在使用之前初始化,使用结束销毁 1.1、定义一个锁变量: pthread_mutex_t g_mutex_Msg; 1.2、初始化锁变量: pthread_mutex_init (&g_mutex_Msg,NULL); 1.3、销毁锁变量:
2013-03-06 12:08:52 1222
原创 小笔记,在windows和linux下分开编译、在C\C++下都使用C风格编译
写一个既能在windows下也能在linux平台下编译的的C/C++代码:#ifdef WIN32//windows部分的代码#else//linux部分的代码#endif //WIN32C/C++接口部分的常用实现代码(导出c接口):#ifdef __cplusplus extern "C"{#endi f//__cplusplus//此处的代码无论
2013-03-05 14:20:36 1505
转载 高效代码审查的十个经验
代码审查摘要:我们在实践中发现,随着开发平台和开发语言的不同,最优的代码审查量有所不同。但是限制每次审查的数量确实非常必要,因为这个过程是高强度的脑力密集型活动。时间一长,代码在审查者眼里只是字母,无任何逻辑联系,自然不会有太多的产出。代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能
2013-03-01 14:52:35 890
原创 linux g++ undefined reference to `dlopen'类问题
main.cpp:(.text+0x19): undefined reference to `dlopen'main.cpp:(.text+0x22): undefined reference to `dlerror'main.cpp:(.text+0x62): undefined reference to `dlsym'需要在编译时加上-ldl。将原来的编译命令:g++ cfgf
2013-03-01 08:55:04 10360
Mosq_Tester-20190722.zip
2020-02-01
mqtt-websocket的js测试客户端
2018-11-24
mosquitto-websocket-client
2018-03-15
mosquitto支持websocket的配置
2018-11-24
python-iniparse-0.4-9.el7.noarch.rpm
2018-03-07
SimpleJava、Linux命令行、Java NIO (中文版)、Linux Performance and Tuning Guidelines
2015-01-04
C开源hash代码uthash
2013-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人