自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Qt 框架_setAttribute(Qt::WA_DeleteOnClose)使用时应注意

在Qt GUI编程中,关闭QWidget及其子类窗口时需销毁窗口时:一、如果你定义在栈上: MainWindow w; w.show(); 在构造函数中增加了:setAttribute(Qt::WA_DeleteOnClose),那么关闭的时候会出现异常情况,因为main退出的时候,会自动的销毁窗口,而setAttrib...

2019-03-01 11:51:32 2955

原创 0x75c5c54f 处最可能的异常: 0x000006BA: RPC 服务器不可用。

CString szFilter = GetPromptMSG(117, ((CUltStrengthApp *)AfxGetApp())->m_strLanguagePath); DWORD dwFlag = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST; CFileDialog DlgFile(TRUE,"USD", NULL, dwFlag, szFilt...

2018-06-12 10:28:20 3603

转载 STL基础知识

一,STL的组成1.什么是STL  STL(Standard Template Library)标准模板库的简称,是由惠普开发的一系列软件的总称,STL现在是C++的一部分,已经被构建于编译系统之内,所以不需要再引入。2.STL的组成部分容器(containers):是一种数据结构容器,使用类模板的方式提供,我们可以方便的进行数据的存储操作。适配器(adapters):以序列式容器为基础,提供的栈...

2018-02-26 15:37:56 226

原创 Linux共享内存及共享内存API

共享内存区是最快的IPC(进程间通信)形式。用共享内存从服务器拷贝文件数据到客户端:共享内存基本API:#include#include1.     int shmget(key_t key,size_t size,int shmflg);功能:用来创建共享内存key:是这个共享内存段的名字size:共享内存的大小shmflg:相当于权限位(如066

2018-01-23 16:31:45 2862

转载 socket粘包问题

一两个简单概念长连接与短连接:1.长连接    Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接    Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点 通讯,比如多个Client连接一个Server. 二 什么时候需要考虑粘包问题?1:如果利用tcp每次发送数据,就与对方建立

2018-01-18 16:33:56 300

翻译 TCP网络编程流程及Socket API基本用法

Socket API基本用法socket函数 int socket(int domain, int type, intprotocol); 包含头文件作用:创建一个套接字用于通信domain:AF_INET(ipv4)   AF_INET6(ipv6)type:        SOCK_STREAM(tcp)    SOCK_DGRAM(udp)intprotocol:通常默认为0.bind函数i

2018-01-18 16:26:33 391

原创 动态库基本知识

动态库的基本表示方法:Windows:    xxxx.dll    .hLinux :          xxxx.so    .h动态库其实是一个函数的集合,是按照一定的规则来做的,用来被操作系统加载,而它本身并不是一个.exe,而一个.exe的运行过程:首先是操作系统去创建一个进程1.exe,然后操作系统再去检测这个进程是否需要额外的动态库,如果需要,则要按照一定的规则去

2018-01-17 14:23:03 272

原创 循环与递归及Fibonacci(斐波那契)数列解法

如果我们需要重复的计算相同的问题,那么通常可以选择循环和递归两种方式递归是在一个函数的内部调用这个函数自身,而循环是通过设置计算的初始值及终止条件,在一个范围内重复运算。例如常见的1+2+...+n的问题递归:int AddFrom1ToN_Recursive(int n) {return n循环:int AddFrom1ToN_Iterative(int n) {int resu

2018-01-16 17:45:19 448

原创 动态库找不到路径应该如何解决?

经常我们会碰到动态库找不到路径的问题,今天用四个步骤教你解决这个问题1:ldd ,如果你有出现未找到动态库路径的条件下,首先ldd一下2 :find  +动态库名 ,找到你未找到的动态库的路径3  : vi ld.conf.so.d ,把找到的动态库路径加到这个配置文件中4  :ldconfig  ,通知系统配置文件已经更新这四步就可以完美解决动态库找不到路径的问题啦!

2017-11-27 19:33:36 938

原创 智能指针share_ptr

智能指针的作用       C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。shared_ptr

2017-11-25 11:23:18 318

转载 C++中指针和引用的区别

指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一

2017-11-20 17:43:27 190

原创 Qt绘图

如果给窗口绘图,一定要在paintEvent上绘pixmap和bitmap的区别仅仅是bitmap只有黑白两种颜色常用绘图设备:  QPixmap 针对屏幕进行优化了,与平台相关,但是不能对图片进行修改  QImage 与平台无关,可以对图片进行修改,可以在线程中绘图  QPicture        保存绘图的状态(二进制文件) QPixmap  -> QImag

2017-11-16 11:03:29 385

原创 Qt内存回收机制

指定父对象后,直接或者间接继承于QObject子对象如果是动态分配空间的new,不需要手动释放delete系统会自动释放但是如果你没有指定父对象,则需要手动delete

2017-11-16 11:02:14 320

转载 Linux中环境变量文件及配置

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。所以管理环境变量的文件也分为系统级和用户级的,1.系统级:(1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件

2017-11-16 10:52:15 189

原创 Qt坐标系统

对于父窗口(主窗口),坐标系统相对于屏幕原点:相对于屏幕左上角x:往右递增y : 往下递增子窗口,坐标系统相对于父窗口原点:相对于父窗口空白区域左上角,不包括边框x:往右递增y : 往下递增

2017-11-06 13:08:31 219

转载 Lamda

在项目文件中加CONFIG +=C++11    QPushButton *a=new QPushButton(this);    setWindowTitle("Lamda");    a->setText("Lamda表达式");    a->move(100,100);    int c=10,b=20;    connect(a,&QPushButton::rele

2017-11-06 13:05:13 359

翻译 信号与槽,connect

connect()函数最常用的一般形式:connect(sender, signal, receiver, slot);参数:sender:发出信号的对象,指针类型signal:发送对象发出的信号 ,&发送者的类名::信号名字receiver:接收信号的对象slot:槽函数,即信号处理函数, &接收的类名::槽函数名字例:      QPushBut

2017-11-06 13:01:26 686

原创 Qt基础

1,基本运行方式         左下角三角,编译运行;左下角锤子编译不运行;左下角放大镜编译调试    ctrl+r    找汉字运行2,主函数代码解释    main.cpp#include "mywidget.h"#includeintmain(intargc, char *argv[]){QAppl

2017-11-06 12:58:01 269

转载 C++中四种类型转换方式

类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风格的类型转换没有区分这些

2017-10-21 10:28:37 230

翻译 线程终止方式

只终止某个线程而不终止整个线程的三种方式

2017-09-23 20:02:53 299

原创 线程的基本函数

pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *),void *arg);pthread_t pthread_self(void);int pthread_detach(pthread_t tid);int pthread_equal(pthread_t t1,pthread_t t2);void pthread_exit(void *retval);int pth

2017-09-23 19:45:21 331

原创 进程 fork exec,wait/waitpid

1,函数原型为:pid_t fork();调用一次返回两次,返回调用进程的pid号。     pid_t pid;     pid=fork();     如果pid>0,则是子进程的进程号,说明此时调用进程是父进程;如果返回是0,则说明此时调用进程是子进程,若          因为读时共享和写时复制,子进程会复制父进程的代码,但是从fork下开始执行。但是,当在fork前定

2017-08-11 12:46:22 423

原创 Linux 下常用gdb的快捷键全

所谓gdb,是Linux下一种常见的调试工具,在写一些简单的项目的时候还是很有益处的,但是如果项目较大,设计到很多进程之类的,不建议用gdb,而建议用printf函数来检测问题所在。使用gdb调试,需要在gcc编译时加上-g,例如gcc  file.c -g -o app.下面是gdb的一些常用的快捷键,仅供大家参考。       (以下括号内均代表简称,若快捷键后面没有跟括号,则代表此快捷键

2017-08-11 11:16:50 3302

原创 教你如何轻松的使用dup2

dup2的意义是复制一个现存的文件描述符,使两个文件描述符共用一个file结构体。可能一般人对于老师解释的dup2都不是很理解,那么今天我来画个图教你轻松的理解dup2例dup2(fd,STDIN_FILENO),据图可知我现在的fd是最小的未被使用的文件描述符3,经过dup2之后,现在文件描述符3和STDIN_FILENO指向了同一个file结构体,此时如果我们close(fd),那么就是S

2017-08-09 12:20:32 435

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除