CPP
文章平均质量分 77
1
sinolover
完成项目,就要软硬兼施
展开
-
Visual Studio Code c++函数跳转时显示“未找到函数定义” vscode no definition for 鼠标提示也没有
并将.vscode目录给 所有用户读写权限,并重启一下vscode。原创 2023-12-07 10:09:37 · 1210 阅读 · 0 评论 -
如何识别C++编译以后的函数名
C/C++语言在编译以后,函数的名字会被编译器修改,改成编译器内部的名字,这个名字会在链接的时候用到。如果用之类的函数打印堆栈时,显示的就是被编译器修改过的名字,比如说_Z3foov。那么这个函数真实的名字是什么呢?每个编译器都有一套自己内部的名字,这里只是针对linux下g++而言。以下是基本的方法: 每个方法都是以_Z开头,对于嵌套的名字(比如名字空间中的名字或者是类中间的名字,比如Class::Func)后面紧跟N , 然后是各个名字空间和类的名字,每个名字前是名字字符的长度,再以E结尾。...原创 2022-08-16 17:05:26 · 1186 阅读 · 0 评论 -
【转】g++以及gcc的区别
转自:g++以及gcc的区别 - 知乎GCC ,gcc 和g++:一直没搞清这几个东西的概念,搜了半天看到了一个不错的解释,所以大致记录一下,以免以后再忘记,链接。(原谅没找到原文出处)GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAVA、Fortran、Pascal、Object-C等语言。gcc是GCC中的GUN C Compiler(C 编译器)g++是GCC中的GUN C++ Compiler(C++编译器)由于编译原创 2022-04-23 16:32:44 · 2224 阅读 · 0 评论 -
【转】pthread mutex 基本用法
转自:pthread mutex 基本用法 | feng 言 feng 语锁是程序中经常需要用到的机制,尤其是多线程的程序中,如果没有锁的帮助,线程间的同步就会非常麻烦甚至不可能。pthread中提供了mutex互斥量这种锁,在 linux 下经常用到,以下是pthread_mutex_t的相关函数介绍及简单用法。相关函数 12345678910 #include <pthread.h>pthread_mutex_t m原创 2022-03-07 13:49:15 · 3918 阅读 · 0 评论 -
【转】foreach for each for_each引发的探讨:c++世界中的循环语句
转自:foreach for each for_each引发的探讨:c++世界中的循环语句_w_419675647的博客-CSDN博客一 背景:代码中看到for each,注意,两个单词中间没有下划线,有同事问这个是不是和for_each一样?和foreach呢?我回答应该一样,但是内心很不安,尤其是作为一个c++的多年用户。二 资料收集整理:1 首先来看看我们最熟悉的 for_each。他的全名是 std::for_each,来源c++的stl。头文件<algorithm&g..原创 2022-01-14 09:35:50 · 554 阅读 · 0 评论 -
【转】C++中如何区分构造函数与重载operator()得到的仿函数?
转自:C++中如何区分构造函数与重载operator()得到的仿函数?求大神!_360问答此外,你觉得仿函数(functor)是否能完全取代function呢?以下是个人使用C++仿函数,function表达式的一些体悟。首先是定义形式:构造函数无返回值,而operator是可以有返回值的;定义时,构造函数需要类名,而重载operator()则不用;其次是调用形式:构造函数是声明对象,而仿函数则需要声明好的对象进行调用。functor是仿函数,function是函数还是s原创 2021-12-20 19:00:27 · 1077 阅读 · 0 评论 -
【转】C,C++宏中#与##的讲解
转自:C,C++宏中#与##的讲解 - MoreWindows - 博客园文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#defineSTRING(x)#x之后,下面二条语句就等价。char *pChar="hello";char *pCh...原创 2021-12-20 18:59:07 · 546 阅读 · 0 评论 -
【转】源码分析C++的string实现
转自:源码分析C++的string实现 - 知乎我们平时使用C++开发过程中或多或少都会使用std::string,但您了解string具体是如何实现的吗,这里程序喵给大家从源码角度分析一下。读完本文相信您可以回答以下问题:string的常见的实现方式有几种? string类的内部结构是什么样子? string内部使用的内存是如何分配管理的? string是如何拷贝构造,如何析构的,有引用计数的概念吗? string的data()和c_str()函数有什么区别? std::to_str原创 2021-12-09 11:32:36 · 1019 阅读 · 0 评论 -
【转】【C++学习笔记】C++异常处理
转自:【C++学习笔记】C++异常处理!你绝对不能错过的干货! - 知乎合理地使用C++异常处理,能够使我们写出来的程序更加稳定强健,不易崩溃。那么,应该如何使用C++异常处理呢?下面,我们就来向大家介绍最简单也是最常用的异常处理语句 。一、什么是异常用官方的话来说就是程序在执行过程中产生的问题,换句通俗的话来讲就是程序执行的出现的异常,比如程序崩了、内存泄漏了、数组越界以及其他异常信息的出现。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、th原创 2021-12-09 11:13:08 · 400 阅读 · 0 评论 -
【转】C++/CLI入门系列 第二篇:封装C++ dll库,提供接口给C#调用
看了第一篇感觉没啥用对吧,来点稍微有用的。1、先建个c#工程,依次 file -> new -> project,选择 visula c# -> console application,写工程名,点 ok。2、再建个c++ dll工程。依次 file -> add -> new project。选择 visual -> win32 console application,点 ok -> next,选择 dll -> finish。3、建原创 2020-08-19 09:02:10 · 914 阅读 · 0 评论 -
【转】C++中的static_cast ,reinterpret_cast的用法和区别
转自:https://www.cnblogs.com/heyonggang/p/3361643.html原文地址:https://www.cnblogs.com/heyonggang/p/3361643.html用法:static_cast < type-id > ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。原创 2021-04-14 08:55:46 · 339 阅读 · 1 评论 -
【转】extern “C“以及__declspec(dllexport) 讲解和def文件dll导出方法
转自:https://blog.csdn.net/qing666888/article/details/41135245一,__ declspec(dllexport):将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。通常它和extern“C”合用,形式如下:extern "C"{ __declspec(dllexport) void FUNCTION() { } } 这是由于在制作DLL导出函数时由于C ++存在函原创 2021-04-09 13:27:19 · 2337 阅读 · 0 评论 -
【转】extern “C“和__declspec(dllexport)以及__declspec(dllimport) 和def的简单解析
转自:https://blog.csdn.net/xupan_jsj/article/details/9028759前面的extern "C" __declspec(dllexport) __declspec(dllimport)都是用于函数或者变量,甚至类的声明的(可以把extern "C"放在class的前面,但是编译器会忽略掉,最后产生的还是C++修饰符,而不是C修饰符)这样的用法有个好处就是下面的代码可以在混有类的函数和变量上使用下面的宏,虽然对类不起作用:#ifdef__cplusp...原创 2021-04-09 13:24:43 · 1116 阅读 · 0 评论 -
【转】__declspec用法详解
__declspec用法详解__declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和 C++语言的ANSI规范,而__declspec是一种扩展属性的定义。扩展属性语法简化并标准化了C和C++语言关于Microsoft的扩展。用法:__declspec ( extended-decl-modifier )extended-decl-modifier参数如下,可同时出现,中间使用 空格 隔开:align (..原创 2021-04-09 13:20:37 · 447 阅读 · 0 评论 -
【转】调用约定__cdecl、__stdcall和__fastcall的区别
什么是调用约定函数的调用约定,顾名思义就是对函数调用的一个约束和规定(规范),描述了函数参数是怎么传递和由谁清除堆栈的。它决定以下内容:(1)函数参数的压栈顺序,(2)由调用者还是被调用者把参数弹出栈,(3)以及产生函数修饰名的方法。历史背景在微机出现之前,计算机厂商几乎都会提供一份操作系统和为不同编程语言编写的编译器。平台所使用的调用约定都是由厂商的软件实现定义的。 在Apple Ⅱ出现之前的早期微机几乎都是“裸机”,少有一份OS或编译器的,即是IBM PC也是如此。IBM PC兼容机的唯原创 2021-04-09 13:16:48 · 462 阅读 · 0 评论 -
【转】Win32子窗口控件(按钮、编辑框、静态框、滚动条等)!!
前言:子窗口控件是特殊的子窗口,不需要我们注册窗口类,系统已经注册好了,我们只需要在创建时选择相应的窗口类名。常用的子窗口控件有按钮BUTTON、组合框COMBOBOX、编辑框EDIT、列表框LISTBOX、静态框STATIC、滚动条SCROLLBAR等类型。消息为WM_COMMAND/WM_CTLCOLORBTN启用/禁用窗口:EnableWindow 设置指定窗口的显示状态:ShowWindow 指定的窗口设置键盘焦点:SetFocus一、按钮(BUTTON)窗口类名:"but...原创 2021-04-08 11:36:48 · 1030 阅读 · 0 评论 -
【转】Win32 SDK 实现带图片的 Button 控件BM_SETIMAGE(Disable时图片不显示)
在编写对话框程序时,希望能在按钮控件里显示一个小插图,如图所示最初使用的方法是使用 BM_SETIMAGE 消息,但却不能达到满意的效果,在网上查了一通资料,最后终于实现了,现在把实现的方法记下来。首先来到MSDN上,查得如下资料BM_SETIMAGE messageAssociates a new image (icon or bitmap) with the button.ParameterswParamThe type of image to associate .原创 2021-04-07 17:18:16 · 867 阅读 · 0 评论 -
【转】SetWindowPos函数
HWND_BOTTOM=1 HWND_TOP = 0 HWND_TOPMOST = -1 HWND_NOTOPMOST= -2 SWP_DRAWFRAME =32 SWP_HIDEWINDOW=128 SWP_NOACTIVATE=16 SWP_NOMOVE =2 SWP_NOREDRAW =8 SWP_NOSIZE =1 SWP_NOZORDER=4 SWP_...原创 2021-04-06 10:54:10 · 306 阅读 · 0 评论 -
【转】C++ 存储类
C++存储类存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C++ 程序中可用的存储类:auto register static extern mutableauto 存储类auto存储类是所有局部变量默认的存储类。{ int mount; auto int month;}上面的实例定义了两个带有相同存储类的变量,auto 只能用在函数内,即 auto 只能修饰局部变量。register ..原创 2021-03-16 10:45:52 · 123 阅读 · 0 评论 -
【转】Windows 窗体消息大全(速查)
阅读目录通用窗口消息 滚动条消息 按钮控件消息 按钮控件通知消息 组合框控件消息 组合框控件通知消息 列表框控件消息 列表框控件通知消息 DDE消息(Dde.h) 工具提示控件消息 Rich Edit控件消息(带格式编辑控件) Listview控件消息 Listview控件通知消息 树控件消息 树控件通知消息 Header Control标头控件消息 Static Control静态控件消息 Toolbar Control工具栏控件消息 Toolbar Control原创 2021-04-13 16:28:55 · 917 阅读 · 0 评论 -
【转】Windows 窗体消息大全(速查)
阅读目录通用窗口消息 滚动条消息 按钮控件消息 按钮控件通知消息 组合框控件消息 组合框控件通知消息 列表框控件消息 列表框控件通知消息 DDE消息(Dde.h) 工具提示控件消息 Rich Edit控件消息(带格式编辑控件) Listview控件消息 Listview控件通知消息 树控件消息 树控件通知消息 Header Control标头控件消息 Static Control静态控件消息 Toolbar Control工具栏控件消息 Toolbar Control原创 2021-04-04 15:57:27 · 348 阅读 · 0 评论 -
【转】Windows 窗体消息大全(速查)
阅读目录通用窗口消息 滚动条消息 按钮控件消息 按钮控件通知消息 组合框控件消息 组合框控件通知消息 列表框控件消息 列表框控件通知消息 DDE消息(Dde.h) 工具提示控件消息 Rich Edit控件消息(带格式编辑控件) Listview控件消息 Listview控件通知消息 树控件消息 树控件通知消息 Header Control标头控件消息 Static Control静态控件消息 Toolbar Control工具栏控件消息 Toolbar Control原创 2021-04-04 15:55:44 · 613 阅读 · 0 评论 -
【转】C++中的字符串(String)和数值转换
『写在前边』因为写PAT总是遇到字符串(主要是String)和数值之间的转化,所以整理一下以便好复习。『String类型的字符串』这里数值和字符串相互转换的例子,使用的是stringstream函数,在c++11当中有定义好的现成的函数取调用,非常方便。1.【字符串转换为数值】string和数值转换 转换类型 to_string(val) 把val转换成string stoi(s,p,b) 把字符串s从p开始转换成b进制的int stol(s,p,b)原创 2021-04-03 17:16:00 · 443 阅读 · 0 评论 -
【转】C++ Win32开发Groupbox子窗口含有的Button不响应单击等消息事件解决
Radio button in groupbox is not generating WM_COMMAND johny10151981 1,0591GB Hi, Here a code part that create a group box and radio button Expand|Select|Wrap|Line Numbers hGroup=CreateWindowEx(0,L"BUTTON",L"Choose...原创 2021-04-03 15:28:26 · 689 阅读 · 0 评论 -
【转】C++ _T()函数和_L()函数介绍
_T("")是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。 Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。如果你编译一个程序为ANSI方式,_T实际不起任何作用。而如果编译一个程序为UNICODE方式,则编译器会把"Hello"...原创 2021-04-01 11:39:07 · 709 阅读 · 0 评论 -
【转】C++学习四 冒泡排序法的一些改进
冒泡排序法需要两次扫描,所以从时间复杂度来说,是O(n2).如果用图形表示,是这样的:但是我们可以加以改进。首先是,如果在排序中间,整个向量已经达到了有序状态,可以直接跳出来。这样它的复杂度由一个三角形变为一个梯形。同时,可能存在部分有序的状态,所以可以再次改进:深蓝色为可能占用的时间复杂度。我自己写了一个代码测试了一下: 1 2 3 4 5 6 7 8 9 10 ...原创 2021-04-04 17:31:04 · 285 阅读 · 0 评论 -
【转】C++学习三 模板类出错总结(Missing template arguments before ‘L‘)
一、模板类的说明 模板类有一个好处是可以放宽你输入的数据类型。 比如有这样的一个函数: int add(int x, int y){ return x+y; } 这个函数对于int类型的x,y才适合,但是如果我们希望计算float类型的呢? 这必须重新定义一个函数(函数重载也可以实现) float add(float x, float y){ return x+y; } 但是这样显然太麻烦,所以模板类可以解决这个问题二、一原创 2021-04-04 17:30:59 · 3448 阅读 · 0 评论 -
【转】C++学习二 vector的用法(使用sort对于vector排序)
一、vector的介绍vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作。二、vector的定义#include<vector>using namespace std;//int 说明的是vector存储的数据类型vector<int> odd_vector;三、vector的一些操作(具体调用方式自行查找)1.push_back 在数组的最后添加一个数据2.pop_back 去掉数组的最后一个数据3....原创 2021-04-04 17:30:54 · 2953 阅读 · 0 评论 -
【转】C++学习一 结构与结构体
转自:https://www.cnblogs.com/fantianliang/category/1574590.htmlhttps://www.cnblogs.com/fantianliang/p/11620328.html结构体属于C++与C区别之一。代码例子如下(来自《C++程序设计》):#include <iostream>#include <string>using namespace std;//结构体 struct EnemySpaceShip原创 2021-04-04 17:30:46 · 76 阅读 · 0 评论 -
【转】C++指针详解!!!!
指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。先声明几个指针放着做例子:例一:int *ptr; char *ptr; int **ptr; int (*ptr)[3]; int *(*ptr)[4]; 指针的类型从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分...原创 2021-03-17 13:38:24 · 95 阅读 · 0 评论 -
【转】C++中#include包含头文件带 .h 和不带 .h 的区别
C++中#include包含头文件带 .h 和不带 .h 的区别?如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些不同?之前在写C++程序的时候只知道使用 #include <iostream> 的时候,使用函数前要用 using namespace std; 导入命名空间,而 #include <iostream.h> 则不用,这个得看C++标准化过程为C++开发者做了哪些有意义的工作。.原创 2021-03-17 10:53:08 · 614 阅读 · 0 评论