标签 C++ 下的文章

  • 📂C++动态内存管理与源码剖析教程

    引言 =======================在本篇文章中,我们主要剖析c++中的动态内存管理,包括malloc、new expression、operator new、array new和allocator内存分配方法以及对应的内存释放方式和他们之间的调用关系,另外也包括一些会引发的陷阱如内存泄漏。-动态内存管理函数及其调用关系 =========================...

  • 📂C++核心编程 1 程序的内存模型教程

    1、内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理(写的所有代码都在代码区)全局区:存放全局变量、静态变量以及常量栈 区:由编译器自动分配释放,存放函数的参数值,局部变量等堆 区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区的意义:不同区域的数据,赋予不同的生命周期,给我们更大的灵活编程程序运行前:在程序编...

  • 📂.Net5.0引用C++库,同时部署到Linux和Windows系统上教程

    部署到Windows上需要.dll库,部署到Linux上则需要.so库,所以在导入C++库的时候不能带扩展名,在lab文件夹中同时放入xxx.dll和xxx.so文件,导入如下:[DllImport("xxx", CallingConvention = CallingConvention.Winapi)] public static extern int Login(string user...

  • 📂Linux C/C++面试题汇总教程

    Linux C/C++面试题汇总前言计算机基础程序的内存空间进程和线程相关关键字conststaticvolatileC/C++指针前言最近面试的比较多,看了很多关于面试的内容,有些平时工作用的比较少或者没有主要到的地方,长时间不看就会忘记,如果下次面试还需要再次找这些东西比较麻烦,所以写此篇文章就是为了方便以后面试,也给一些即将面试的人提供一些帮助。以后如果面试有新的值得关注的问题作者会及...

  • 📂C++ | 内存共享教程

    一、背景最近在做美颜软件虚拟摄像头的功能,类似YY开播(我们获取笔记本的摄像头列表时,列表中除了自带的摄像头,以及usb的摄像头,还有YY开播),查了一下网络上实现的虚拟摄像头展示的都是本地的视频,但是我这边的美颜软件需要读取自带摄像头拍摄的画面,美颜后将视频帧数据传输到虚拟摄像头中,当我们调用虚拟摄像头的时候就能看到美颜后的画面,这个功能的实现就用到了美颜软件和虚拟摄像头的内存共享。二、代...

  • 📂Windows error:Microsoft Visual C++ 14.0 is required教程

    Windows error Microsoft Visual C++ 14.0 is required问题描述解决办法问题描述安装Hanlp中文分词工具时,出现以下错误:Windows error:Microsoft Visual C++ 14.0 is required Error: Microsoft Visual C++ 14.0 or greater is required. Get...

  • 📂使用 Dev-C++开发windows程序界面设计教程

    很多年前学过C++,但没有怎么使用过。最近有时间,准备重新学起来,以便可以编写自己喜欢的程序。关于C++编译器,讨论文章已经很多。详细对比的文章也很多,我只是说说我一个初学者的感受。就我自己而言,当初上学时用的是TC 2.0,DOS时代的C C++编译利器,时代过于久远,除了练习C以外,不知道还能做什么。网上还有可以运行在win 7下的TC 自制版。VC++,VC++.net 有点庞大,自动...

  • 📂C++ Linux 网络编程学习笔记(2)TCP深入教程

    socket系统调用背后:Linux内核做了什么?listen 与 accept内核在我们调用listen方法后,就已经为这个监听端口建立了SYN队列和ACCEPT队列,当客户端使用connect方法向服务器发起TCP连接,客户端的SYN包到达服务器后,内核会将这一信息放到SYN队列,同时回一个SYN+ACK包给客户端,客户端再次发来了ACK包后,内核会把连接从SYN队列中取出,再把这个连接...

  • 📂C/C++内存几大分区教程

    功能:内存栈区,内存堆区,常数区,静态区,代码区栈区(stack)存放局部变量名。 由编译器自动分配释放 ,存放函数的参数值,局部变量的值。 栈的地址是向下增长。堆区(heap)存放new或者malloc出来的对象。 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。 堆的地址是向上增长静态区(全局区)全局变量和静态变量的存储是放在一块的。可将其分为.bss和...

  • 📂内存四区模型C/C++教程

    1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和...

  • 📂C/C++ 内存申请函数的区别教程

    **malloc与new 的区别 1、函数与运算符 2、new能重载 使用自定义堆 能指示内存位置 3、malloc 不会自动走构造函数,new 自动走构造函数。4.C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存。网上看到的一个总结说几点自己的认识:1.自由存储区这个概念没有听过,但网上也有人读书读到了,大家意见不一,更大众的观点是new和malloc都是...

  • 📂C/C++遍历某进程的模块教程

    1. Module32Next HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); // 进程快照句柄 PROCESSENTRY32 process = {sizeof(PROCESSENTRY32)}; // 快照信息 // 遍历进程,找到 QQMusic.exe whi...

  • 📂C++ 获取进程所在目录(全路径)教程

    方法1 定位某个进程(比如 QQMusic.exe)所在的全路径,下面是代码:string GetProcessInfo(HANDLE hProcess,char* processName) { PROCESSENTRY32* pinfo = new PROCESSENTRY32; //进程信息 (pinfo->dwSize = sizeof(PROCESSENTRY32);)...

  • 📂centos6.5安装C++ 11教程

    centos7可以直接用yum来安装c++11,而6可以按照以下方式。CentOS 6.4 使用C++11,需要安装 devtools21.下载 repo 到本地wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo 2.安装yum install dev...

  • 📂Ubuntu16 基于qt C++与vrep/coppeliasim通讯教程

    Ubuntu16 基于qt C++与vrep/coppeliasim通讯1.系统环境和软件2.安装支撑库3.将支撑文件和库添加到工程4.将支撑文件和库引用到工程中5.打开vrep端的scene6.测试通讯7.自己的vrep模型8.参考1.系统环境和软件系统:ubuntu16.04IDE: QT Creatorvrep(现在称作coppeliasim):CoppeliaSim_Edu_V4_2...

  • 📂C++ 内存四区教程

    前言 =======================回顾C++知识,写给自己看的,同时希望对大家有所帮助目录 =======================总述正文代码区静态区(static)栈区(stack)堆区(heap)常量存储的位置函数调用过程-总述 =======================C++内存分为代码区、静态区、栈区、堆区共四个区域其中静态区又分为 数据区、BSS...

  • 📂Linux下的C++ Socket网络编程教程

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。即Socket提供了操作上述特殊文件的接口,使用这些接口可以实现网络编程。Socket通信流程图TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在正式通信之前必须建立起连接。UDP(User Data Protocol,用户数据报协议)是一个非连接的协议。因此TCP...

  • 📂C++两种计时方式(windows平台,毫秒级&微秒级)教程

    版权声明:本文为CSDN博主「朱铭德」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zmdsjtu/article/details/535362911.毫秒级的,利用 ::GetTickCount()获取系统运行的总时间//弊端在于如果系统运行超过49天就会出现问题//如果计时误差要求不高可以考虑用...

  • 📂判断文件或文件夹(目录)是否存在 C/C++ win/linux通用教程

    一、windows下使用_access()或linux下使用access()函数windows下使用_access()函数所在头文件:<io.h> 函数原型:int _access(const char* _Filename, int _AccessMode); _Filename:文件或文件夹(目录)路径,可为绝对路径、相对路径; _AccessMode:指定判断的...

  • 📂C++重启进程教程

    C++重启进程步骤:1、查找需要重启进程的进程id2、启动需要重启的进程3、杀死第一步进程id的进程代码:1、查找需要重启的进程的进程id//通过进程名查找进程Id bool GRPCClient::FindProcess(std::wstring strProcessName, DWORD& nPid) { TCHAR tszProcess[64] = { 0 }; ...

  • 📂c++中的内存知识汇总教程

    (个人记录向,轻喷,望指教)一、基本类型内存占用相信我,你最开始就应该知道的,是每个基础类型在不同编译器下占的内存空间大小(位数)。 c++中各类型数据所占字节数(一)二、内存空间的分区c++中的内存空间大致可以分为五个区域,分别是栈区(由编译器自动分配释放,存放函数参数值,局部变量值等)、堆区(由程序员分配释放,程序结束后可能会由OS回收)、全局区/静态区(数据区存放全局变量和静...

  • 📂Android进程保活黑科技实现原理解密及方法,请查收教程

    ## 最后 这里我特地整理了一份《**Android开发核心知识点笔记**》,里面就包含了自定义View相关的内容 ![](http://www.icode9.com/i/li/?n=2&i=images/20210705/1625485695824627.jpg) 除了这份笔记,还给大家分享?**Android学习PDF+架构视频+面试文档+源码笔记**,高级架构技术进阶脑图、Androi...

  • 📂Linux C/C++定时器教程

    1. 定时接口sleep函数族: sleep,usleep,nanosleep,clock_nanosleep特点:有一定的精度,但是会使线程挂起。信号:alarm,setitimer特点:采用了信号SIGALRM,由于SIGALRM信号不可靠,会造成超时通知不可靠,而且多线程中处理信号比较复杂。Linux定时接口:timer_create/timer_settime特点:先创建,再设置。创...

  • 📂C++学习——更新linux上CMAKE的版本教程

    #首先是从这个网站上下载对应的版本:https://cmake.org/files/v3.12/cmake-3.12.1.tar.gz tar -xvf cmake-3.12.1.tar.gz cd cmake-3.12.1 cmake . make -j8 sudo make install然后再 输入如下的语句,就可以了sudo update-alternatives --install...

  • 📂C++学习——C/C++ 内存泄漏检测工具:Valgrind教程

    对于初学者(我)内存泄露是一个尴尬又不得不面对的一个问题。本文介绍了一个C++内存泄露的检测工具:Valgrind主要从以下的几个步骤介绍这个工具。工具介绍Valgrind是一个用来分析代码执行的工具集,主要由以下的几个工具组成:Memcheck是一个内存错误检测器。它有助于使你的程序,尤其是那些用C和C++写的程序,更加准确。Cachegrind是一个缓存和分支预测分析器。它有助于使你的程...

  • 📂C++ Windows下dll的使用教程

    调用dll有两种方式,隐式链接(exe加载时需要)和显示链接(运行时调用) 结论:想将编写的dll文件暴露给外部使用,有三种办法; 1. 使用.def文件 2. 使用__declspec(dllexport) 3. 使用__declspec(dllimport)【推荐】 正确编译代码不需要使用 __declspec(dllimport),但是这样做可以让编译器生成更优质的代码。 编译器能够生...

  • 📂WPF封装dotnetremoting调用其他进程教程

    titleauthordateCreateTimecategoriesWPF 封装 dotnet remoting 调用其他进程 lindexi 2019-02-16 09:40:26 +0800 2018-05-19 08:57:17 +0800 WPF dotnetremoting rpc 本文告诉大家一个封装好的库,使用这个库可以快速搭建多进程相互使用。在 WPF 使用RPC调用其...

  • 📂C++基础-vector数据结构(初始化,插入,删除, 数据交换, 分配内存, 二维数组 )教程

    1.vector的初始化 使用vector myint{1, 2, 3, 4, 5}, 以及在vector中取数据, 使用.at或者[]int main1() { vector<int> myint{1, 2, 3, 4, 5}; for(int i = 10; i < 20; i++) { myint.push_back(i); ...

  • 📂Windows MinGW配置C、C++编译环境教程

    写在前面的前面:这篇文章vscode和cpp插件版本有点老了,仅供大家参考,最新的和最详细的更新见我的另一篇文章:https://blog.csdn.net/bat67/article/details/76095813写在前面:由于这学期(或者说这一年)一直在忙别的,也没什么闲心看博客了,近期发现自己的这篇文章:整理:Visual Studio Code (vscode) 配置C、C++环境...

  • 📂Linux Ubuntu 安装编译Opencv 3.4.3 C++开发环境教程

    在安装Autoware之前,需要先安装Opencv,之前在Windows下安装了Opencv,挺复杂的。不过,在Ubuntu 16.04环境中配置安装Opencv相对来说,比较简单。Linux Ubuntu 安装编译Opencv 3.4.3 C++开发环境1.1 下载Opencv 3.4.3去官网下载opencv,在本教程中选用的时opencv3.4.3,其他版本的配置方法异曲同工。 下...