c++
文章平均质量分 88
破晓前的彷徨
塞上牛羊空许约
展开
-
C++中文件流(fstream)的使用方法及示例
转载自http://blog.csdn.net/seadplus/article/details/7802346C++文件流:[cpp] view plaincopyfstream // 文件流 ifstream // 输入文件流 ofstream // 输出文件流转载 2015-11-04 16:33:12 · 1350 阅读 · 0 评论 -
Qt显示pdf系列1——序言,扯淡,选择相关库及方式等
序一尝试显示office二尝试打开pdf1尝试打开pdf文件2选择开源库三总结 前言:这一阵子都在研究qt下显示office和pdf相关方案,需求大致为从ftp上下载office或者pdf等文件,客户端界面上直接显示。大致分为这三个策略:上策直接像web端那样,直接将office诸如ppt,word,excel等直接嵌入过去,但不能让用户编辑和另存为;中策显示pdf,一样不能编辑不能复制另原创 2017-03-07 20:09:18 · 4384 阅读 · 3 评论 -
Qt显示pdf系列2——QAxWidget打开Office文件及pdf
序一QAxwidget操作office二QAxwidget操作pdf三总结 承接上章,该扯皮的扯完了,直接进入正题:序 顾名思义,这篇先介绍下QAxwidget来操作office和pdf QAxwidget,即一个ActiveX控件的qt版本,方便我们在qt程序中调用显示,可以直接调用com组件。关于QAxwidget的介绍,官网上有更详细的,可以自行查看: QAxwidget官网介绍原创 2017-03-12 00:08:31 · 22548 阅读 · 42 评论 -
QTableWidget,QTableView分页(1)——制作分页栏
序一了解QSS二分页思路三使用封装好的pdf动态库1在vs中使用2在qt中使用四结语 近日做了个tablewidget的分页,也没啥好说的,直接上内容吧。序 效果预览: 一共有两个分页栏,上面的是借(chao)鉴(xi)别人的,地址如下: 传送门 在他人基础上做了个自己合适的分页栏,也就是第二个,将这俩一并拿出来说吧,如有侵权,会删除第一个。 开发原创 2017-07-13 09:33:31 · 16335 阅读 · 2 评论 -
QTableWidget,QTableView分页(2)——使用分页栏
序一新建QTableWidget二加入分页栏三调度逻辑四下载连接及一点点话 承接上文,这篇主要是讲如何使用分页栏,其实也不用多说的,但demo都写了,不妨就简单介绍下吧。序 效果预览: 在这里只介绍了一个分页栏的,因为都一样,接口函数,用法完全一模一样,所以没必要。且table用的是QTableWidget,QTableView也是一样的道理。 开发环境:windows7 + vs2015原创 2017-07-17 12:40:30 · 10743 阅读 · 1 评论 -
Qt显示pdf系列4——封装pdfium库为动态库,显示pdf
序一新建项目二封装pdfium库三使用封装好的pdf动态库四结语 承接上篇,pdfium的lib文件是已经编译出来了,理论上已经可以开始直接用了,官方提供的测试demo中基本上介绍了用法的整套流程,你可以选择导出一页页的(图片)文件,也可以直接取出Buffer丢给支持图形库去渲染。序 但是需要注意的是,他在实际使用中依旧有很多不便: 1、我们能够编译出来的只有vs2015或以上版本的lib原创 2017-03-19 22:23:58 · 13426 阅读 · 26 评论 -
Qt一步步搭建TcpServer1——封装QTcpServer,QTcpSocket
序一安装git二下载安装depot_tools三安装chromium其他依赖项四下载pdfium项目源码五生成pdfium的vs2015项目六编译pdfium的vs项目七结语 本篇直接介绍谷歌开源项目pdfium怎么编译,pdfium是其实官网里已经有很一个介绍,但是是英文的,而且实际会遇到很多问题:序 注意:1、所有资源都需要翻墙下载,包括文档,同时,从g原创 2017-08-02 19:13:19 · 8257 阅读 · 0 评论 -
Qt一步步搭建TcpServer2——线程池
1封装TcpThread2修改TcpSession3添加SessionThreads4修改TcpServer5总结承接上章:Qt一步步搭建TcpServer1——封装QTcpServer,QTcpSocket本章将在TcpServer的基础上新增线程池,管理Session。1、封装TcpThread正所谓工欲善其事,必先利其器。要实现一个线程池,按照Qt的线程用法(如果不懂用法的同学,可以参原创 2017-08-05 21:46:22 · 5074 阅读 · 2 评论 -
Qt一步步搭建TcpServer0——序
开发环境系列目录系列简介适合对象获取帮助开发环境 开发环境:windows7 + vs2015 + QT5.8系列目录: 老规矩,先贴出预估要出的博客目录,后期如果有多或者有少再动态调整。博客发布后再替换成相应的地址:Qt一步步搭建TcpServer0——序言Qt一步步搭建TcpServer1——封装QTcpServer,QTcpSocketQt一步步搭建TcpServer2——线程池Q原创 2017-08-01 18:50:56 · 2280 阅读 · 8 评论 -
Qt一步步搭建TcpServer4——Client的封装与网络库的使用
承接上章: Qt一步步搭建TcpServer3——关闭与启动在上一章讲完Server端的安全启动与关闭之后,我整理了下代码,突然发现内容分配的不太合理,所以这章要说的东西多一点:封装ClientManager->抽成NetApi静态库项目->在别的项目中使用该NetApi库。1、创建ClientManager:ClientManager其实也是类似于Server,自己维护一个会话线程池,客户端要用S原创 2017-08-26 22:55:59 · 3552 阅读 · 3 评论 -
性能特性测试系列4——QT线程与std::thread(下)之QThread
序一QThread二两种用法二互斥量锁条件变量原子操作及其他三一张图 其实用法早就总结了,但是因为自身事务原因,一直没有比较他们间的效率,甚至各种互斥量,条件变量之间的效率,更多是集中看了下他们各自的api和特点,所以估计以后还需要补充或者是另开一篇来讲= =。序 QThread的线程用法上与std::thread相比有较大的区别,4.4版本之前是继承的方式来使用线程(个人猜测可能是因为那会原创 2017-01-15 00:23:42 · 6891 阅读 · 3 评论 -
性能特性测试系列3——QT线程与std::thread(上)之std::thread
序一stdthread二互斥量与自解锁三条件变量与future四原子操作机制 测试完容器和function之后,立马开始测和总结qt线程和std::thread相关特性,之后可能会继续网络库的测试,如qt的tcp,udp和c++的tcp,udp的一些比较,至于为啥是比较qt和c++之间,我也不知道= =。序 以前虽然也用线程,但没完整试,这次算是各种试一下吧,效率上的测试一是不太好测,二是也原创 2016-12-31 14:56:48 · 3135 阅读 · 0 评论 -
find_first_of()和 find_last_of() 【获取路径、文件名】
原文转载自:http://blog.sina.com.cn/s/blog_68208a890100v608.html string 类提供字符串处理函数,利用这些函数,程序员可以在字符串内查找字符,提取连续字符序列(称为子串),以及在字符串中删除和添加。我们将介绍一些主要函数。1.函数find_first_of()和 find_last_of() 执行简单的模式匹配转载 2015-11-09 09:15:23 · 988 阅读 · 0 评论 -
c++自定义消息管理机制(类似cocos2d-x的实现方式)
某日写逻辑的时候,突然想到,关于消息管理机制,于是想到cocos2dx的__NotificationCenter,虽然不是写cocos2dx了,但是未尝不可自己写一套类似的消息管理机制,方便通知。 因此直接借(chao)鉴(xi)它里面的消息管理机制了:原创 2015-10-20 09:49:26 · 1880 阅读 · 0 评论 -
C++基本数据类型所占字节数
正好用上了,忘得又差不多,当个笔记咯,转载自:http://blog.csdn.net/vast_sea/article/details/8076934关于这个基本的问题,很早以前就很清楚了,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下转载 2015-11-10 10:20:10 · 686 阅读 · 0 评论 -
c++存取dat数据
众所周知,dat是一个类似加密的二进制格式文件,很多人喜欢将游戏数据保存在dat文件中,只有知道你的存放格式,才能够将数据破解出来,因而研究了dat文件的存取方式。其实就是c++文件的操作,只不过是在取的时候需要按照自己存放的格式获取出来。1.struct结构体的格式数据 首先定义一个结构体,用以存放存入dat文件的数据,同时,再取的时候按照结构体的格式进行获取操作:原创 2015-11-05 12:32:36 · 27142 阅读 · 4 评论 -
c++11move语意的便捷理解
本文是一篇回答,原文链接为:http://stackoverflow.com/questions/3106110/what-are-move-semantics(第一个回答)。对于理解c++11的move概念较有帮助,我用(译注:)补充了自己的一些看法,而(原文:)表示原作者的括号。 正文如下:我想到一种很容易的例子来理解move语意。我们从一个非常简单的字符串类开始,它只包含一个指向一堆内存翻译 2016-01-08 12:21:00 · 5605 阅读 · 2 评论 -
c++自定义消息管理机制升级版(std::bind && std::function)
自从上次写完借(chao)鉴(xi)cocos2dx的消息管理机制之后,也在实际中试着用了几次,只能说对于继承Ref基类方面,一直是最大的不足之处,而后更是遇到了一个问题,使我不得不抛弃这个方式,转而寻找别的方法。 问题(bug):在多重继承中,对于子类如果是先继承别的类,在订阅消息强转成Ref类型指针时,由于c++对象的结构,强转过程中会发生地址偏移,同时在调用时对象每个成原创 2015-10-20 11:04:58 · 1554 阅读 · 0 评论 -
关于无法解析的外部符号的link错误小提醒
关于无法解析的外部符号的link错误已经是老生常谈了,譬如这个博客: [ 点击跳转 ] 上面列出了10种不同的问题和方案(虽然有好几点是重复的,但还是有一定参考性) 然而今天遇到的是一个vs2013下的恶心问题,上面十种并未提到,因为是特例,所以不具普遍代表性,只是写出来给当做提醒和小笔记。问题:大概是vs又抽风,编译debug版本时没有任何问题,然而在编译release版本时发现死活编译不原创 2016-02-23 17:19:41 · 590 阅读 · 0 评论 -
c++11智能指针解析——揭开底层面纱,完整理解智能指针
昨天跟同事小小的研究了下关于不同平台下,起因是遇到了一个坑,vs上没有问题,在安卓上却崩溃了。找了半天后发现是c++字节补齐问题,期间包括使用#pragma pack(1)来限定字节对齐方式等各种条件,也是把我们搞的七晕八素,总算是进一步了解了c++对象结构以及编译器的操作(有机会的话也补充下字节对齐的理解)。进而想到了智能指针,稍微了解下。第一次接触智能指针,天知道大学期间自己有多不努力,很多知原创 2016-01-07 17:00:49 · 47374 阅读 · 6 评论 -
性能特性测试系列1——STL容器,QT容器性能相关比较和总结
流程序qtstl容器对应关系对比图顺序容器一 stdvector与QVector二 stdList与QLinkedList与 QList三 stddeque关联容器一 Stdset 与 QSetstd unordered_set二stdmap与QMap三std unordered_map与QHash四stdmultimap与QMultiMap容器适配器原创 2016-12-16 17:21:42 · 7072 阅读 · 2 评论 -
性能特性测试系列2——c++11 std::function和正常调用函数效率比较
序测试结果测试数据解释测试结果总结总结与分析 原本是没打算写一个系列的,结果到了第二篇才开始写一个前言,本来不确定自己会测试哪些东西,哪些内容,以及有没有时间持续写这些比较偏的内容,但既然有打算写第二篇了,那么就写一个系列吧。本系列主要是QT和c++一些对比,当然也可能会有本篇这种纯c++的测试,看情况吧只能说。测到哪里写到哪里,时间就不太好说了= =。序 对于std::function和s原创 2016-12-21 21:30:38 · 5837 阅读 · 0 评论 -
Qt一步步搭建TcpServer3——关闭与启动
前言1Server启动2关闭Server1修改TcpSession2 线程池关闭5总结承接上章: Qt一步步搭建TcpServer2——线程池本章将在上一章的基础上,讲述如何安全的关闭与启动Server。前言首先要更正上一篇的一个文字错误: 在这里这样用信号槽,并且删除Session是安全的。因为其事件循环机制是在按线程来的,在退出session线程之后,才会进入下一个线程的事件循环原创 2017-08-16 21:30:32 · 5971 阅读 · 0 评论