- 博客(26)
- 资源 (5)
- 收藏
- 关注
原创 C/C++ 实现的websocket客户端和服务器
领导安排实现一个websocket客户端做测试用,因为工位电脑上的环境只有vs2019和boost1.78.0,所以只能基于boost.beast开发。擅长Qt并且有Qt开发环境的用QWebsocket更方便。官方的example中仅仅输出到控制台,而且不支持中文,这里我加入了ansi到utf8的转换,使用utf8就能正常解析中文。注:项目需包含boost库客户端代码:#include<time.h> #include <boost/beast/core.hp
2022-03-16 16:34:17 9433
原创 静态数组和动态数组的区别
1. 静态数组在内存中位于栈区,是在定义时就已经在栈上分配了固定大小,在运行时这个大小不能改变,如:int a[10]; 动态数组是malloc或者new出来的,位于内存的堆区,它的大小是在运行时给定,并且可以改变其,如: int *a; a = new int[10];2. 静态数组的大小是在编译期间就确定,并且分配的,其内存在使用结束后由计算机自动释放,效率高;动态数组是在程序运行时,由程序员根据实际需要从堆内存中动态申请的,使用结束后由程序员进行释放,效率低。3. ...
2021-08-10 14:55:59 11685
原创 gcc: error trying to exec ‘cc1plus‘: execvp: No such file or directory
环境为ubantu 14。gcc编译 .c 文件时正常,编译 .cpp 文件时报错。原因:解决方法:
2021-06-15 14:35:52 888
原创 使用XShell连接linux虚拟机
在VMWare中操作虚拟机非常不方便,需要频繁将鼠标切入切出。我们可以通过XShell连接到虚拟机,然后在XShell中做操作会比较方便。
2021-06-11 15:29:35 3948 2
原创 linux下编译运行C程序(入门)
笔者现在还没有linux基础,听过vim,但还不会用,都是自己在windows上写完代码,把文件拷贝到linux系统上再去编译的。。。将windows上的文件拷贝到linux上的命令:
2021-06-11 15:25:52 134
原创 Vmware虚拟机创建一个linux(Ubuntu)系统
准备 好 Vmware虚拟机16版本 + ubantu-14.04-server-amd64.iso系统镜像文件。第一步:先傻瓜式安装好VMware-workstation-full-16.0.0-16894299.exe
2021-06-11 13:37:02 470 2
原创 父类指针可以指向子类对象
结论:父类指针可以指向子类对象,但是只能访问父类成员,不能访问子类成员结论:子类指针不可以指向父类对象,需要类型转换才可以笔记:<1>.当基类指针指向派生类的时候,只能操作派生类从基类中继承过来的数据.<2>.当派生类指向基类的指针,因为内存空间比基类长,访问的话会导致内存溢出,所以不允许派生类的指针指向基类。加深理解:<1>.通常来说,子类肯定含有父类所有的成员变量和方法函数.所以用父类指针指向子类时,没有问题,因为父类有的...
2021-03-24 14:51:05 9107
原创 Probuf学习笔记
一 、什么是probufprobuf是google团队开发的一种语言无关、平台无关、可扩展的结构化数据序列化方法(常用于通信协议、数据存储等)。二 、优缺点分析优点:与XML和JSON相比,Protobuf 编码是二进制而不是文本,使用protobuf表示的数据会将数据压缩得更小,大约是json格式的1/10,xml格式的1/20。并且在反序列效率上明显优于XML。扩展性兼容性好,只需更新数据结构文件即可。缺点:由于数据采用二进制编码,出问题时不易调试。三 、安装与使用...
2021-03-23 14:57:02 710
原创 2020-12-31
创建动态链接库及类的导出创建一个动态库项目BDLL,在其中创建一个类B作为导出类//头文件#ifndef BBB_h__#define BBB_h__class __declspec(dllexport) BBB{public: BBB(void); ~BBB(void); int GetB();};#endif // BBB_h__//源文件#include "BBB.h"BBB::BBB(void){}BBB::~BBB(void){}int
2021-01-05 15:54:19 325
原创 句柄的数据类型多为void*的原因
主要有3方面原因1、void类型的指针不能执行++或者+n的操作2、不能直接取空指针指向的内容3、转换为其他类型指针时无需类型转换,例如 voidpVoid; intpInt = pVoid;这样保证了即使为void类型后面使用也很方面综上几点原因,可以使系统很好的保护句柄不被改变和破坏,又可以保证句柄作为指针时使用方便...
2020-12-11 14:50:58 420
原创 判断图片格式
if(0xFF == buffer[0] && 0xD8 == buffer[1]) //JPG格式if('B' == buffer[0] || 'M' == buffer[1]) // BMP格式
2020-04-02 15:04:32 262
转载 QComboBox下拉列表样式美化定义
Qt Assistant中官方提供的脚本定义样例如下:QComboBox { border: 1px solid gray; border-radius: 3px; padding: 1px 18px 1px 3px; min-width: 6em;}QComboBox:editable { background: white;}QComb...
2019-04-25 17:00:11 2048
原创 VS2013中C++方式的进程间通信---socket
服务器进程:#include <Windows.h>#include <iostream>using namespace std;#pragma comment(lib, "ws2_32.lib")SOCKET ServerSocket;SOCKET CientSocket;#define IP_ADDRESS "127.0.0.1"#def...
2018-10-19 16:21:49 1602 1
原创 VS2013中C++方式的进程间通信---共享内存
进程A:#include <Windows.h>HANDLE hMapFile = INVALID_HANDLE_VALUE;LPVOID lpBase = NULL;#define BUF_SIZE 8 //设置共享内存长度int main(int argc, char *argv[]){ //功能:采用共享内存方式将端口号写入内存中供客户端读取 cha...
2018-10-18 17:32:16 1941
原创 在C++应用程序中设置生成dump并使用VS进行调试
首先,包含头文件#include "Windows.h"#include "DbgHelp.h"其次,在代码中添加这两个函数int GenerateMiniDump(HANDLE hFile, PEXCEPTION_POINTERS pExceptionPointers, PWCHAR pwAppName){ BOOL bOwnDumpFile = FALSE; HANDL...
2018-10-18 16:19:34 1429
原创 在Windows环境下使用gcc生成可执行程序简介
gcc(GNU编译器套件)。gcc的初衷是为GNU操作系统专门编写的一款编译器,可以处理多种编程语言:C、C++、Objective-c 、Objective-c++、Fortran、 Java 、Ada 、Go及汇编语言。基本用法:在使用gcc编译器时,我们必须给出一系列必要的调用参数和文件名称。调用参数大约有100多个,具体可参考GCC Manual。用法:gcc [options...
2018-09-20 15:59:19 9520
原创 在Windows环境下安装及配置gcc编译器
我们都知道,gcc是GNU操作系统的编译套件,那么在Windows系统下可以使用gcc吗?答案是可以的。介绍MinGW首先我们先介绍下MinGW,MinGM是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称,见名知意,是在Windows上部署了一个简洁版的GNU系统,是一套GNU的缩减工具集合,其中就有我们需要的gcc。...
2018-09-20 14:49:52 3887
原创 创建第一个Qt Quick Application
1、创建工程2、 mainc.pp源码#include <QGuiApplication>#include <QQmlApplicationEngine>int main(int argc, char *argv[]){ QGuiApplication app(argc, argv); QQmlApplicationEngine en...
2018-09-17 18:27:53 2090
原创 双击运行Qt应用程序报缺库不一定都是打包的问题,有可能是程序本身代码逻辑的问题
打包发布开发完成的QT应用程序到别的无Qt开发环境的机器上双击打开运行,结果报了如下提示:按字面意思一直以为是缺库或库不对应的问题,折腾一番后实在找不出原因就去逐看代码,结果发现还真是代码问题导致的。我用的是vs+qt的开发环境,要看应用程序都用到哪些库了可以在vs中点击运行,在输出视图中便可以看到应用程序都在加载调用哪些库了,显示信息如下:真正发现问题是通过对比查看正常的和不...
2018-09-10 16:11:34 363
原创 使用QT自带打包工具windeployqt.exe打包程序
步骤:1、新建一个文件夹,随意取名Release2、放入编译好的应用程序,以QConfigure.exe为例3、在Qt安装目录D:\Qt\32\Qt5.5.1\5.5\msvc2013\bin下找到windeployqt.exe,将windeployqt.exe放到Release文件夹下4、在文件夹路径栏中输入“cmd”打开命令行窗口,在其中输入“windeployqt QCo...
2018-09-10 15:44:01 2545 1
原创 Qt实现自定义窗体
Qt中已经为我们封装了很好用的窗口风格,但在实际开发过程当中,要么需求要么UI抛过来的界面要求总是平添许多工作量。今天得空便来记录下我在项目中实现的一个需求:扁平化界面风格。虽然可能还会在未来的使用过程中暴露出一些问题,但目前还是可以满足基本使用需求的。进入正题,首先我们必须创建一个基于QDialog的带界面的类,然后对Qt生成的窗体进行改造,再在代码中应用信号槽机制实现类似于原生窗体的事件交
2017-11-29 13:45:46 2960
原创 Qt第二天——静态版本编译
上篇介绍了QT开发的基本知识——环境搭建,相信大家已经最qt开发有所了解,但是不管是msvc、mingw,都是使用qt的相关动态库进行编译的,因此,我们做出来的应用程序若是换到一台没有安装过qt开发环境的机器上,将会提示缺少qt相关的动态库而无法正常运行,除非你再把需要用到的库也搬过来,但这样显然很麻烦,有没有什么办法可以解决这个问题?今天我们就来介绍下静态编译qt应用程序的准备工作。
2017-08-11 14:24:34 6080
原创 Qt第一天——搭建开发环境
Qt下载网址: 官网下载地址:http://www.qt.io/download(速度慢) 官网提供的镜像下载地址:http://download.qt.io 下载目录说明:我们要找的东西大多在archive目录下。我们开发Qt程序的常用途径分为两种:使用Qt creator集成开发环境来开发,或使用
2017-08-11 13:08:53 473 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人