C/C++语言
月月爱猫粮
这个作者很懒,什么都没留下…
展开
-
source insight调整
source insight调整字体大小转载 2014-09-26 11:19:42 · 539 阅读 · 0 评论 -
Boost.Asio c++ 网络编程翻译(2)
前言网络编程由来已久,并且是一个极富挑战性的任务。Boost.Asio对网络编程做了一个极好的抽象,从而保证你用少量的编程就可以创造出一个优雅的client-server软件,并在创造的过程中,它能让你体会到极大的乐趣。而更为有益的是,Boost.Asio包含了一些非网络的特性,用Boost.Asio写出来的代码紧凑、易读,而且如果你按照我在书中所讲的来做,你的代码会无懈可击。这本书涵盖了转载 2015-01-16 10:06:37 · 545 阅读 · 0 评论 -
Boost.Asio c++ 网络编程翻译(4)
转载(翻译的不错):http://blog.csdn.net/mmoaay/article/details/39454899同步VS异步首先,异步编程和同步编程是有极大的不同的。在同步编程中,你所有的操作都是顺序执行的,比如从一个socket中读取(请求),然后写入(回应)到socket中。每一个操作操作都是阻塞的。因为操作是阻塞的,所以为了不影响主程序,当读写一个so转载 2015-01-16 10:13:37 · 404 阅读 · 0 评论 -
linux下安装boost (转)
Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,,作为标准库的后备,是C++标准化进程的发动机之一,在linux安装过程如下:去官方网站下载最新的:http://sourceforge.net/projects/boost/files/boost/1.47.0/ or www.boost.org一,最简单的方法:apt-cache search boost搜到转载 2014-12-28 21:31:49 · 366 阅读 · 0 评论 -
C中结构体的存储分配
struct是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如array、struct、union等)的数据单元。对于结构体,编译器会自动进行成员变量的对齐,以提高运算效率。缺省情况下,编译器为结构体的每个成员按其自然对齐(natural alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成转载 2015-03-08 18:03:57 · 535 阅读 · 0 评论 -
QT:十六进制字符串转数字整形
//大写int detection::Hextoi(QString s,char len){ int i; int n = 0; if(s.length()<len) return 0; //解决崩毁,指针溢出问题 for (i=0;i<len;++i) { if (s.at(i) > '9')原创 2015-06-20 16:58:35 · 3824 阅读 · 0 评论 -
4个字节的16进制数转浮点型数据
union{ float f; char buf[4];}data;data.buf[0] = 0x6b;data.buf[1] = 0x28;data.buf[2] = 0x1D;data.buf[3] = 0x44;data.f; // 这个data.f就是你要的628.6315转载 2015-06-23 23:33:31 · 6523 阅读 · 0 评论 -
程序引用BOOST库,运行找不到对应的lib
运行程序出现:error while loading shared libraries: libboost_thread.so.1.58.0: cann因为要用到的库不在默认的环境变量里,需要添加,可以使用下面的命令添加:$ sudo ldconfig /usr/local/lib原创 2015-07-11 22:07:19 · 2119 阅读 · 0 评论 -
C++中引用(&)的用法和应用实例
原文:http://www.cnblogs.com/Mr-xu/archive/2012/08/07/2626973.html对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在c++学习提高篇(3)---隐式转载 2015-07-05 15:33:03 · 354 阅读 · 0 评论 -
C语言strtoul()函数:将字符串转换成unsigned long(无符号长整型数)
头文件:#include strtoul() 函数源自于“string to unsigned long”,用来将字符串转换成无符号长整型数(unsigned long),其原型为: unsigned long strtoul (const char* str, char** endptr, int base);【参数说明】str 为要转换的字符串,endstr 为第一个转载 2015-08-20 09:52:45 · 7153 阅读 · 1 评论 -
JSONCPP库移植
Linux平台编译解压后运行如下命令:# 先安装 scons$ sudo apt-get install scons$ scons platform=linux-gcc目标路径:动态库:./libs/linux-gcc-4.8/libjson_linux-gcc-4.8_libmt.so静态库:./libs/linux-gcc-4.8/libjson_lin转载 2016-07-18 17:23:36 · 1024 阅读 · 0 评论 -
运行过程中链接动态链接库与编译过程中链接动态库的区别
我们调用动态链接库有两种方法:一种是编译的时候,指明所依赖的动态链接库,这样loader可以在程序启动的时候,来所有的动态链接映射到内存中;一种是在运行过程中,通过dlopen和dlfree的方式加载动态链接库,动态将动态链接库加载到内存中。这两种方式,从编程角度来讲,第一种是最方便的,效率上影响也不大,在内存使用上有些差别。第一种方式,一个库的代码,只要运行过一次,便会占用物理内转载 2017-01-01 21:03:43 · 880 阅读 · 0 评论 -
QtCreator动态编译jsoncpp完美支持x86和arm平台
jsoncpp加入到ARM项目中:第1步:下载 jsoncpp-src-0.5.0.tar.gz 这个库文件。具体下载目录在 /2012年资料/2月/8日/QtCreator动态编译jsoncpp完美支持x86和arm平台/解压后如图:不要被这一堆文件吓到哦。 第2步:把我们要的东西从代码堆里整理出来。 (1) 随便找个地方建一个空文件夹叫json (2转载 2017-02-06 11:33:50 · 362 阅读 · 0 评论 -
插件的技术原理
插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“ 即插即用 ” 软件开发。平台+插件软件结构是将一个待开发的目标软件分为两部分,一部分为程序的主体或主框架,可定义为平台,另一部分为功能扩展或补充模块,可定义为插件。 在进行软件开发之前,是否采用平台转载 2017-03-31 14:45:26 · 752 阅读 · 0 评论 -
在Qt中如何编写插件,加载插件和卸载插件
Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoader来加载和卸载这些库。由于在开发项目的过程中,要开发一套插件系统,就使用了Qt的这套类库。一 编写插件编写一个Qt的插件需要以下步骤 1.声明一个插件类,2.定义一个类,实现这个插件类定义的接口,定义的这个类必须从QObject转载 2017-03-31 14:47:41 · 511 阅读 · 0 评论 -
使用Qt编写模块化插件式应用程序
动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来。比起源码级别的模块化,二进制级别的模块划 分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会引起其它模块和主程序的重新编译,这点对于大系统的构建来说更加实用。另一方面,对于商 业目的明显的企业,各模块可以独立设置访问权限,开发成员只能访问自己负责的模块,其它模块是不能也不给看到的,这样减少转载 2017-03-31 14:52:15 · 443 阅读 · 0 评论 -
AES加密原理
参考: http://www.cnblogs.com/xiehongfeng100/p/4315395.html转载 2017-04-25 09:45:56 · 347 阅读 · 0 评论 -
MFC:从“const CString”转换为“LPCSTR”
解决方案就是, 在项目属性里面找到项目默认值下面的字符集,--->>将其换为:使用多字节字符集原创 2017-07-19 10:01:34 · 1124 阅读 · 0 评论 -
Boost.Asio c++ 网络编程翻译(1)
转载(翻译的却是不错):http://blog.csdn.net/mmoaay/article/details/39371939第一次翻译,希望大家多多指正实战出精华Boost.Asio C++ 网络编程用具体的C++网络编程例子来提升你的技能John Torjan用具体的C++网络编程例子来提升你的技能Copyright转载 2015-01-16 10:03:41 · 478 阅读 · 0 评论 -
C++ 类对象和 指针的区别
用代码说明之间区别zhizheng.cppclass Test{public: int a; Test(){ a = 1; }};int main(){ Test* t1 = new Test(); t1->a = 10; Test* t2 = new Test(); t2->a = 5;转载 2014-12-26 22:19:19 · 405 阅读 · 0 评论 -
Boost.Asio c++ 网络编程翻译(3)
Boost.Asio入门什么是Boost.Asio简单来说,Boost.Asio是一个跨平台的、主要用于网络和其他一些底层输入/输出编程的C++库。计算机网络的设计方式有很多种,但是Boost.Asio的的方式远远优于它们。它在2005年就被包含进Boost,然后被广大Bosot的用户测试并在很多项目中使用,比如Remobo(http://www.remobo.com),可以让你创建你转载 2015-01-16 10:08:33 · 387 阅读 · 0 评论 -
字符测试函数:C语言isxdigit()函数----判断字符是否为16进制数字
头文件:#include 定义函数:int isxdigit (int c);函数说明:检查参数c是否为16 进制数字,只要c为下列其中一个情况就检测成功。16进制数字:0123456789ABCDEF。返回值:若参数c 为16 进制数字,则返回非 0,否则返回 0。附加说明:此为宏定义,非真正函数。范例:找出字符串str 中为十六进制数字的字符转载 2014-09-25 09:16:17 · 5311 阅读 · 0 评论 -
漫谈C语言结构体(转)
相信大家对于结构体都不陌生。在此,分享出本人对C语言结构体的学习心得。如果你发现这个总结中有你以前所未掌握的,那本文也算是有点价值了。当然,水平有限,若发现不足之处恳请指出。代码文件test.c我放在下面。在此,我会围绕以下2个问题来分析和应用C语言结构体: 1. C语言中的结构体有何作用2. 结构体成员变量内存对齐有何讲究(重点)对于一些概念的说明,我就不把C语言教材转载 2014-09-25 11:41:34 · 509 阅读 · 0 评论 -
字符检测:C语言ispunct()函数--判断字符是否为标点符号或特殊字符
ispunct() 函数用来检测一个字符是否为标点符号或特殊字符,其原型为: int ispunct(int c);【参数】c 为需要检测的字符。【返回值】若 c 为标点符号或特殊符号(非空格、非数字和非英文字母)返回非 0 值,否则返回 0。注意,此为宏定义,非真正函数。【实例】列出字符串str 中的标点符号或特殊符号。转载 2014-09-25 09:39:48 · 3535 阅读 · 1 评论 -
字符检测函数:C语言isupper()函数---判断字符是否为大写英文字母
头文件:#include 定义函数:int isupper(int c);函数说明:检查参数c是否为大写英文字母。返回值:若参数c 为大写英文字母,则返回非 0,否则返回 0。附加说明:此为宏定义,非真正函数。范例:找出字符串str 中为大写英文字母的字符。转载 2014-09-25 09:22:53 · 3793 阅读 · 0 评论 -
C语言字符串处理函数收集
C语言字符串函数用法汇总 函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);程序例:#include #include int main(void){char string[10];char *str1 = "abcdefghi";stpcpy(string,转载 2014-09-28 15:21:49 · 416 阅读 · 0 评论 -
字符串读取错误
利用字符数组建立的字符串的时候,数组原创 2014-10-06 08:59:14 · 915 阅读 · 0 评论 -
关于c++中的适配器
c++中的适配器有三种:容器适配器,迭代器适配器,函数适配器下面一一介绍1.容器适配器:具体的有stack,queue,priority_queue,默认的情况下,stack和queue基于deque而实现的,priority_queue在vector上实现的,可以根据第二个实参指定容器的类型,但一定要符合标准,queue要求要有push_front操作因此不能建立在vector上面,prio转载 2014-10-08 20:36:37 · 322 阅读 · 0 评论 -
比较实用的三个字符串处理函数(STM32串口)
如果有漏洞,请大家留言继续修改/*//函数名称:复制字符串//参数:dest字符串容器,str被复制字符串,count复制长度//返回值:无//*/void my_strncpy(u8 *dest, u8 *src, int count) { u8 *tmp = dest; while(count) { if ((原创 2014-10-09 15:46:46 · 22188 阅读 · 0 评论 -
无意中发现的strncmp()
//±È½Ï×Ö·û´®////u8 my_strncmp(u8 *string1,u8 *string2,size_t count){u8 res,k=1; while(*string1!='\0'&&*string2!='\0'&&k { k++; if(*string1==*string2) {原创 2014-10-09 14:54:15 · 632 阅读 · 0 评论 -
error: ‘exit’ was not declared in this scope
linux 里面C++编程,使用了exit(1)函数出现如下错误: error: ‘exit’ was not declared in this scope解决: 头文件添加:#include原创 2015-01-12 23:06:12 · 3027 阅读 · 0 评论 -
stl string常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常stri转载 2015-01-14 14:56:49 · 358 阅读 · 0 评论 -
C++STL之string
在学习c++STL中的string,在这里做个笔记,以供自己以后翻阅和初学者参考。1:string对象的定义和初始化以及读写string s1; 默认构造函数,s1为空串string s2(s1); 将s2初始化为s1的一个副本string s3("valuee"); 将s3初始化一个字符串面值副本string s4(n,'c'); 将s4 初始化为字符'转载 2015-01-14 15:21:29 · 347 阅读 · 0 评论 -
C++ explicit关键字应用方法详解
C++编程语言中有很多比较重要的关键字在实际编程中起着非常重要的作用。我们今天为大家介绍的C++ explicit关键字就是其中一个应用比较频繁的关键字。下面就让我们一起来看看这方面的知识吧。 C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在转载 2014-12-25 11:44:10 · 334 阅读 · 0 评论 -
类的对象和类的指针的认识
类对象:QGroupBox radioGroup; 类指针:QGroupBox *radioGroup;很关键的一点:定义对象实例时,分配了内存,指针变量则未分配类对象所需内存。 类的指针:他是一个内存地址值,他指向内存中存放的类对象(包括一些成员变量所赋的值). 对象,他是利用类的构造函数在内存中分配一块内存(包括一些成员变量所赋的值). 指针变量是转载 2014-12-25 11:55:25 · 362 阅读 · 0 评论 -
Boost::asio库的网络编程学习(转)
对于一个网络程序的服务器端我们需要提供的是服务器的address,和服务开放的端口号port。在asio库中首先我们必须使用一个io_service类来支持所有的IO功能。需要注意到是我们必须调用io_service_my.run()函数来开启IO服务的事件循环以使功能都能被正常使用。 boost::asio::io_service io_service_my;现在我们可以基于这个io转载 2015-01-14 14:05:48 · 473 阅读 · 0 评论 -
boost常用库案例
1.boost::anyboost::any是一种通用的数据类型,可以将各种类型包装后统一放入容器内,最重要的它是类型安全的。有点象COM里面的variant。使用方法:any::type() 返回包装的类型any_cast可用于any到其他类型的转化 #include void test_any() { typede转载 2015-01-15 09:38:22 · 412 阅读 · 0 评论 -
Boost.Asio c++ 网络编程翻译(5)
异常处理VS错误代码Boost.Asio允许同时使用异常处理或者错误代码,所有的异步函数都有抛出错误和返回错误码两种方式的重载。当函数抛出错误时,它经常抛出boost::system::system_error的错误。using boost::asio;ip::tcp::endpoint ep;ip::tcp::socket sock(service);sock.connect转载 2015-01-16 11:07:19 · 411 阅读 · 0 评论 -
QT数据流大少端设置
//大端格式,高字节在前QDataStream out(&outData,QIODevice::ReadWrite);out.setByteOrder(QDataStream::BigEndian); //小端格式,低字节在前QDataStream out(&outData,QIODevice::ReadWrite);out.setByteOrder(QDataStream::Li...原创 2018-04-23 10:13:22 · 1748 阅读 · 0 评论