摘要:本文介绍三种“实现单实例应用程序”的方法,保障每次只能运行一个该类型的应用程序。 一、共享内存 在main函数中添加如下代码: // 使用共享内存的方式来保证只运行一个实例 QString strKey = "MyApplication"; QSharedMemory sharedMemory; s
阅读全文
随笔分类 - C++/C
摘要:开发一个应用程序不可避免要使用多个第三方库(library).默认情况下,gcc采用动态连接的方式连接第三方库,比如指定-lpng,连接程序就会去找libpng.so。 gcc提供了一个-static参数,可以改变gcc默认的连接方式,GNU官网上关于gcc连接选项的手册《3.14 Options
阅读全文
摘要:转载地址:http://www.10tiao.com/html/473/201606/2651473094/1.html 程序的CPU问题是另外一类典型的程序性能问题,很多开发人员都受到过程序CPU占用过高的困扰。本次我们收集了14个CPU类的问题,和大家一起分析下这些问题的种类和原因。另外,对于C
阅读全文
摘要:1 软件性能较差,占用CPU较多,往往是由于某段代码逻辑算法不佳导致,那如何在数以千计的函数中找到问题函数呢?2 在使用!runaway命令比较不同时间各线程占用CPU时间,找到CPU时间增涨较多的线程,那么就初步定位了问题函数所在的问题线程,3 然后在不同的时刻观察问题线程的调用栈,如果多次观察到
阅读全文
摘要:基于无锁队列和c++11的高性能线程池线程使用c++11库和线程池之间的消息通讯使用一个简单的无锁消息队列适用于linux平台,gcc 4.6以上 标签: <无> 基于无锁队列和c++11的高性能线程池线程使用c++11库和线程池之间的消息通讯使用一个简单的无锁消息队列适用于linux平台,gcc
阅读全文
摘要:笔者之前照着通用写法练手写过一个小的线程池版本,最近几天复习了一下,发现大多数线程池实现都离不开锁的使用,如互斥量pthread_mutex*结合条件变量pthread_cond*。众所周知,锁的使用对于程序性能影响较大,虽然现有的pthread_mutex*在锁的申请与释放方面做了较大的优化,但仔
阅读全文
摘要:C++中关于[]静态数组和new分配的动态数组的区别分析 一、静态数据及动态数组的创建 静态数据: int a[10]; int a[]={1,2,3}; 数组的长度必须为常量。 动态数组: int len; int *a=new int [len]; delete a; 数组的大小可以为变量。 注
阅读全文
摘要:方法1:IP地址转换为整数:比如"192.168.1.254",以点为分割,将192 168 1 254保存在一个int a[4]数组里,然后通过unsigned int nResult = (a[3] << 24) + (a[2] << 16) + (a[1] << 8) + a[0]得到一个无符
阅读全文
摘要:直接上代码(不要直接拷贝,中间少了一行啊): #include <string> #include <string> #include <iostream> #include <iostream> using namespace std; using namespace std; int shu[4
阅读全文
摘要:当时面试上机的想法是,直接使用uint32_t变量来存ip地址,遍历字符串带".",然后去值,利用移位来将这个值填到uint32_t对应的位置上。这样的麻烦之处在于: 1,遍历字符串,还得记录每个"."出现的位置; 2,移位操作; 而最巧妙的做法是,利用一个uint8_t的数组(长度为4)和ssca
阅读全文
摘要:对于有开发经验的程序员来说,记录程序执行日志是一件必不可少的事情。通过查看和分析日志信息,不仅可以有效地帮助我们调试程序,而且当程序正式发布运行之后,更是可以帮助我们快速、准确地定位问题。在现在这个开源的年代,并不需要我们自己去写一套日志库,开源的版本已经有很多了。然而遗憾的是,在目前开源的C++日
阅读全文
摘要:Lzma(7-zip) 使用:在C目录中有算法文件,进入Util\LzmaLib目录,编译生成LIB库,导出了以下两函数,LzmaCompress 为压缩函数,LzmaUncompress 为解压缩函数。MY_STDAPI LzmaCompress(unsigned char *dest, size
阅读全文
摘要:在学习FPS3000人脸关键点定位算法时,发现github上的源码,存在大量的内存泄漏问题,在训练的时发现内存一直在增长,测试的时候也存在内存无法彻底释放的问题。 一直以为是存放模型参数vector<class>结构的问题, 采用以下方法手动释放,仍然无法解决问题。 vector<class> re
阅读全文
摘要:C语言中可以用函数地址直接调用函数: void print () void print () { { printf ("function print"); printf ("function print"); } } typdef void (*fun)(); typdef void (*fun)(
阅读全文
摘要:摘要:介绍了如何取成员函数的地址以及调用该地址. 关键字:C++成员函数 this指针 调用约定 一、成员函数指针的用法 在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候
阅读全文
摘要:安装环境CentOS6.5 启动命令行 1.先安装gcc和gcc++,这个可以直接安装 2.再安装gtk2,也是直接安装 3.再安装wxGTK,一样的方法 4.本来要安装xterm的,最后我用的时候发现,显示中文有些显示的是方框,开始以为是codeblocks的事情,最后找到原因了,是这个xterm
阅读全文
摘要:我想对面向对象有了解的童鞋应该不会对类和对象感到陌生吧 ! 对象并不是突然建立起来的,创建对象必须时必须同时创建父类以及包含于其中的对象。C++遵循如下的创建顺序: (1)如果某个类具体基类,执行基类的默认构造函数。 (2)类的非静态数据成员,按照声明的顺序创建。 (3)执行该类的构造函数。 即构造
阅读全文
摘要:1、构造函数的调用顺序 基类构造函数、对象成员构造函数、派生类本身的构造函数 2、析构函数的调用顺序 派生类本身的析构函数、对象成员析构函数、基类析构函数(与构造顺序正好相反) 3、特例 局部对象,在退出程序块时析构 静态对象,在定义所在文件结束时析构 全局对象,在程序结束时析构 继承对象,先析构派
阅读全文
摘要:Qt Creator支持中文,启动速度比Eclipse、Netbeans更快,界面也更美观,跟输入法Fcitx协作良好(光标跟随)。 你既可以把Qt Creator当代码编辑器作为vim辅助,好处在于Qt Creator能够自动parse项目,形成友好快速的智能提示,而且你也同样可以使用Qt Cre
阅读全文
摘要:玩转Windows服务系列——创建Windows服务一文中,介绍了如何快速使用VS构建一个Windows服务。Debug、Release版本的注册和卸载,及其原理和服务运行、停止流程浅析分别介绍了Windows服务的注册、卸载、运行、停止的简单流程。那么今天就来介绍一下如何使用开源库Boost.Ap
阅读全文