面向对象
文章平均质量分 61
sg-expert
elite
展开
-
grpc的使用、传输文件方法
grpc入门,通过 SSH 在远程和本地系统之间传输文件的 4 种方法原创 2024-07-18 14:54:59 · 154 阅读 · 0 评论 -
Qt MetaObject 介绍
下面来说说Qt的MetaObject。原创 2023-06-01 14:31:26 · 619 阅读 · 0 评论 -
解析QPointer
解析QPrinter的使用原创 2023-06-09 16:16:10 · 1081 阅读 · 0 评论 -
cppcheck和cpplint的介绍与实例化使用
对于大型C/C++项目,一般是分模块开发的方式进行,代码量数十万或者更多。由于代码量的激增以及开发人员众多,代码出现bug的概率也随之增加。静态代码检查重要性突显。原创 2023-04-05 22:49:41 · 1680 阅读 · 0 评论 -
C++模板的使用
在平时的工作和学习过程中,经常会用到泛型,这里对泛型和模板进行一下梳理,以便理解和使用。原创 2023-03-04 21:30:04 · 2175 阅读 · 0 评论 -
读“敏捷开发修炼之道”有感
读书后感想原创 2023-01-19 17:21:52 · 121 阅读 · 0 评论 -
浅谈微服务的使用
架构的关键是取舍,进而架构师就是做取舍的人。把简单事情吹牛般的变复杂是现在很多IT走不下去的根本原因。采用微服务,实际是在转移复杂性,而不是消解复杂性。原创 2023-01-09 23:05:06 · 357 阅读 · 0 评论 -
一文轻松明白 Base64 编码原理
探索一下base64编码的原理原创 2023-01-01 21:26:42 · 827 阅读 · 0 评论 -
在qml中使用ScrollView、StackView、SwipeView
参考 https://doc.qt.io/qt-6/qtquick-controls2-qmlmodule.html。关于在qml中使用ScrollView、StackView、SwipeView,原创 2022-11-11 22:07:50 · 747 阅读 · 0 评论 -
实例介绍开源C++网络库:ACE
ACE是一个大型的中间件产品,一堆的设计模式,架构了一层又一层,使用的时候, 要根据情况,看你从那一层来进行使用。支持跨平台。原创 2022-11-07 14:34:44 · 4744 阅读 · 0 评论 -
C++ 中关于virtual析构函数
尽量将析构函数定义为virtual。原创 2022-07-17 15:13:43 · 2817 阅读 · 0 评论 -
C++的四种cast转换(const_cast、static_cast、dynamic_cast、reinterpreter_cast)
类型转换,总结一下原创 2022-07-17 15:02:21 · 403 阅读 · 0 评论 -
c/c++内存四种类型的本质分析
1.1数据类型本质分析1.1.1数据类型的概念●“类型”是对数据的抽象●类型相同的数据有相同的表示形式、存储格式以及相关的操作●程序中使用的所有数据都必定属于某一种数据类型1.1.2数据类型的本质●数据类型可理解为创建变量的模具:是固定内存大小的别名。●数据类型的作用:编译器预算对象(变量)分配的内存空间大小。●注意:数据类型只是模具,编译器并没有分酤空间,只有根据类型(模具)创建变量(实物),编译器才会分配空间。1.2变量的本质分析1.2.1变量的概念概念:既能读又能写的内存对象,原创 2022-01-15 21:25:07 · 319 阅读 · 0 评论 -
Shell脚本-全局变量、局部变量、环境变量
Shell 变量的作用域可以分为三种:有的变量只能在函数内部使用,这叫做局部变量(local variable);有的变量可以在当前 Shell 进程中使用,这叫做全局变量(global variable);而有的变量还可以在子进程中使用,这叫做环境变量(environment variable)。Shell 局部变量Shell 也支持自定义函数,但是 Shell 函数和 C++、Java、C# 等其他编程语言函数的一个不同点就是:在 Shell 函数中定义的变量默认也是全局变量,它和在函数外部定原创 2021-07-08 20:58:39 · 15530 阅读 · 2 评论 -
有用网站
原创 2020-06-28 23:35:23 · 156 阅读 · 0 评论 -
CreateThread后立即CloseHandle,为什么线程还在运行?
最近回顾了下多线程的东西,碰到CloseHandle函数,之前也碰到过,但是自己积累不足,所以也没理解明白。这次再次碰到,想想积累的也差不多了,索性就搞个明白。函数说明BOOL CloseHandle(HANDLE hObject);参数hObject :代表一个已打开对象handle。返回值TRUE:执行成功;FALSE:执行失败,可以调用GetLas转载 2018-03-29 09:58:13 · 456 阅读 · 0 评论 -
在windows上远程使用simplerabbitmq注意事项
1 修改rabbitmq安装目录中etc下rabbitmq.config.example文件,如下:%% -*- mode: erlang -*-%% ----------------------------------------------------------------------------%% RabbitMQ Sample Configuration File.%%原创 2018-03-28 11:59:18 · 321 阅读 · 0 评论 -
windows 环境中 Running RabbitMQ Server as an Application or as a service
The RabbitMQ server can be run as either an application or service (not both).rabbitmq-server.bat starts the broker as an application.rabbitmq-service.bat manages the service and starts the broker原创 2018-03-23 11:18:17 · 214 阅读 · 0 评论 -
面向对象设计原则
对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。 面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模转载 2018-02-22 10:35:29 · 244 阅读 · 0 评论 -
CUDA 入门教程
CUDA从入门到精通(零):写在前面在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择。还有不到一年毕业,怕是毕业后这些技术也就随毕业而去,准备这个暑假开辟一个CUDA专栏,从入门到精通,步步为营,顺便分享设计的一些经验教训,希望能给学转载 2018-01-09 17:56:07 · 51575 阅读 · 3 评论 -
python socket通信 以16进制的数据进行传递与解析
struct.pack也就是将数据按照二进制的格式进行传输#!/usr/bin/env python#coding:utf-8__author__ = 'ferraborghini'from socket import *import struct#将16进制数据当做字节流传递转载 2017-11-23 18:28:52 · 6374 阅读 · 0 评论 -
C++实现简单线程池
欢迎转载,转载请注明原出处:http://blog.csdn.NET/ithzhang/article/details/9020283 代码地址:https://github.com/ithzhang/ThreadpoolLib.git本文介绍的线程池采用C++语言,在windows平台下实现。此版本为Version 1.0,以后还会推出功能更完备的后续版本。本着技转载 2016-09-29 17:23:05 · 4563 阅读 · 1 评论 -
CreateThread,_beginthread,_beginthreadx的区别
CreateThread是Windows的API函数,而_beginthread和_beginthreadex则是CRT库函数,查看这两个CRT函数的代码可以得知其实它们内部是调用的CreateThread(这很显然嘛,CRT库也是要运行在Windows上)。CreateThread API创建的线程中使用sprintf,malloc,strcat等涉及CRT存储堆操作的CRT库函数是很危险的,转载 2016-10-25 17:00:05 · 351 阅读 · 0 评论 -
#pragma data_seg() 在进程通信或数据共享上的用法总结
#pragma data_seg()一般用于DLL中,用于定义一个共享的,有名字的数据段。命名的数据段中的全局变量可以被多个进程共享,否则多个进程之间无法共享DLL中的全局变量。例如:同一程序的多个实例共享一份数据,一个实例对数据的修改会影响到其他实例,具体到窗口中就是,一个实例中的数据显示变化引起其他各个实例中数据显示的更新。具体应用实例:a) 实现进程间的数据共享,通信在W转载 2016-11-03 18:02:46 · 893 阅读 · 0 评论 -
监控windows服务,当服务停止后自动重启服务
近期花时间研究了一下windows和linux下某服务停了后自动重启的功能,在网上收集了些资料,并经过测试,在此整理一下。这里介绍的是windows服务的监控,是通过批处理来实现的。本例是监控windows的Computer Browser为例,每60秒检测一次(可根据实际需要调整间隔),当发现服务停止后自动重启。AutostartService.bat批处理文件内容如下 @echo转载 2016-09-21 09:55:05 · 5632 阅读 · 2 评论 -
C++STL 常用 函数 用法
迭代器(iterator) 个人理解就是把所有和迭代有关的东西给抽象出来的,不管是数组的下标,指针,for里面的、list里面的、vector里面的,抽象一下变成了iterator 1 #include 2 #include 3 4 using namespace std; 5 6 int main() 7 { 8 vectorint> v;转载 2016-02-23 10:58:16 · 728 阅读 · 0 评论 -
架构(三层架构)、框架(MVC)、设计模式三者异同点
本博客主要针对架构、框架和设计模式三者的区别、还有三层和MVC的区别进行讨论、对于这三者一点都不了解的、请点在维基和百度百科上补补课、这里就不发链接了软件架构 (software architecture) 软件的架构是系统的一个草图、阐述了各个组件之间的通讯、划分层次、一旦系统开始详细设计、架构蓝图就很难甚至无法更改、是由软件架构师从无到有设计出来的。转载 2016-03-03 17:27:34 · 3675 阅读 · 0 评论 -
Linux下配置和使用ACE
1. 下载 ACE 5.7.从 http://download.dre.vanderbilt.edu/ 下载 ACE+TAO+CIAO-5.7.tar.gz包。2. 解压将压缩包copy到linux目录/data/ACE里,然后解压, tar -zxvf ACE+TAO+CIAO-5.7.tar.gz。解压后的目录是 /data/ACE_wrappers.3. 配转载 2016-01-27 15:13:12 · 3997 阅读 · 0 评论 -
C++中两个类互相引用的解决
A的头文件A.h:123456789101112131415161718#ifndef _A#define _A#include "B.h"class A{private:inta;B objectb;//A的头文件导入了B的头文件,在调用B的原创 2016-01-22 15:45:49 · 739 阅读 · 0 评论 -
Windows进程间通信—命名管道
命名管道是通过网络来完成进程间的通信,它屏蔽了底层的网络协议细节。我们在不了解网络协议的情况下,也可以利用命名管道来实现进程间的通信。与Socket网络通信相比,命名管道不再需要编写身份验证的代码。将命名管道作为一种网络编程方案时,它实际上建立了一个C/S通信体系,并在其中可靠的传输数据。命名管道服务器和客户机的区别在于:服务器是唯一一个有权创建命名管道的进程,也只有它能接受管道客户机的连接请求。转载 2016-11-18 17:20:05 · 710 阅读 · 0 评论 -
用指针参数去申请内存
void GetMemory2(char **p, int num){ *p = (char *)malloc(sizeof(char) * num);}void Test2(void){ char *pt = NULL; GetMemory2(&pt, 100); // 注意参数是 &pt,而不是pt strcpy(str, "hello"); cout原创 2016-11-24 17:32:12 · 424 阅读 · 0 评论 -
比较开源C/C++网络库
在开源的C/C++网络库中, 常用的就那么几个,在业界知名度最高的, 应该是ACE了, 不过是个重量级的大家伙, 轻量级的有libevent, libev, 还有 Boost的ASIO。ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层,使用的时候, 要根据情况,看你从那一层来进行使用。支持跨平台。Boost的ASIO是一个异步IO库转载 2017-10-12 11:29:22 · 718 阅读 · 0 评论 -
开源C/C++网络库比较
在开源的C/C++网络库中, 常用的就那么几个,在业界知名度最高的, 应该是ACE了, 不过是个重量级的大家伙, 轻量级的有libevent, libev, 还有 Boost的ASIO。ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层,使用的时候, 要根据情况,看你从那一层来进行使用。支持跨平台。Boost的ASIO是一个异步IO库转载 2017-10-12 11:21:19 · 441 阅读 · 0 评论 -
win32 线程优先级 SetThreadPriority
参数说明 hThread 要设置的线程句柄 nPriority 优先级别参数 可设置为一下参数 THREAD_PRIORITY_ABOVE_NORMAL 比一般优先级高一个等级 THREAD_PRIORITY_BELOW_NORMAL 比一般低一个等级 THREAD_PRIORITY_HIGHEST转载 2017-07-21 17:16:09 · 1264 阅读 · 0 评论 -
如何使用LeakDiag
LeakDiag是微软一款检测memory leak的工具,使用比较简单首先去下载一个LeakDiag安装好,默认是在c:/leakdiag然后写一个测试程序来测试#include stdio.h>#include windows.h>int main(){ while(1) { char *c转载 2017-01-18 14:13:24 · 1317 阅读 · 0 评论 -
互斥锁 临界区 信号量 事件的区别
四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。临界区(Critical Section)保证在某转载 2017-02-17 10:21:18 · 408 阅读 · 0 评论 -
_stdcall,_cdecl区别
(1) _stdcall调用 _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。 WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题: #define WINAPI _stdcall 按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如_a转载 2017-02-07 10:19:52 · 449 阅读 · 0 评论 -
编解码技术学习网站汇总
1.音视频开源1.1 FFMPEGhttp://www.ffmpeg.org/http://dranger.com/ffmpeg/Ffmpeg Basic http://ffmpeg.tv/http://www.libav.org/1.2 H264/AVC http://www.videolan.org/developers/x264转载 2017-02-04 21:54:37 · 267 阅读 · 0 评论 -
重叠IO overlapped I/O 运用详解
I/O设备处理必然让主程序停下来干等I/O的完成,对这个问题有方法一:使用另一个线程进行I/O。这个方案可行,但是麻烦。 即 CreateThread(…………);创建一个子线程做其他事情。 Readfile(^…………);阻塞方式读数据。方法二:使用overlapped I/O。overlapped I/O是WIN32的一项技术,你可以要求转载 2016-12-09 16:31:27 · 1571 阅读 · 0 评论 -
vs2010中使用.def文件导出函数时需要的设置
方法:在vs2010中使用.def文件导出函数时,要在工程属性-链接器-输入-模块定义文件中加入自定义的.def文件名;可用vs的命令提示查看导出函数 dumpbin -exports dllnames原创 2015-10-23 16:26:34 · 2475 阅读 · 0 评论