![](https://img-blog.csdnimg.cn/7941afe6dc6b4976b203bb5880af6395.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
文章平均质量分 53
c++
OneBaBa
这个作者很懒,什么都没留下…
展开
-
C++实现Ping功能
基础知识ping的过程是向目的IP发送一个type=8的ICMP响应请求报文,目标主机收到这个报文之后,会向源IP(发送方,我)回复一个type=0的ICMP响应应答报文。那上面的字节、往访时间、TTL之类的信息又是从哪来的呢?这取决于IP和ICMP的头部。IP头部:头部内容有点多,我们关心的只有以下几个:IHL:首部长度。因为IP的头部不原创 2017-02-23 09:11:14 · 3097 阅读 · 1 评论 -
C++ STL之Vector
Vector用法1.构造 //****vector构造方式 vector<int> v1; vector<int> v2(5); vector<int> v3(5, 0); //****通过字符串构造 string str[] = {"ZhangSan","LiSi","WangWu"}; vector<string> V1(str, str + 3); vector<string>::iterator iter0 = V原创 2021-11-08 14:10:32 · 768 阅读 · 0 评论 -
socket 知识点汇总
socket--socket()、bind()、listen()、connect()、accept()、recv()、send()、select()、close()、shutdown()侵删转载自http://blog.csdn.net/amaowolf/article/details/8008575转载自http://www.cnblogs.com/jianqiang2010/a...转载 2020-02-28 08:53:03 · 1021 阅读 · 1 评论 -
c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
转自:http://blog.csdn.net/longhuahaha/article/details/85569641.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。。。 ActiveX控件的后缀转载 2016-08-31 17:37:18 · 1058 阅读 · 0 评论 -
基于MFC的ActiveX控件开发
转自:http://www.cnblogs.com/lidabo/archive/2012/12/04/2800921.htmlActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中。在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的;一种是转载 2016-09-05 10:29:49 · 2649 阅读 · 0 评论 -
VS2008 创建DLL和调用DLL
隐式链接就是在程序开始执行时就将DLL文件加载到应用程序当中。隐式链接必须的文件:lib .显式链接是应用程序在执行过程中随时可以加载DLL文件,也可以随时卸载DLL文件,这是隐式链接所无法作到的,所以显式链接具有更好的灵活性,对于解释性语言更为合适。不过实现显式链接要麻烦一些。在应用程序中用LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接转载 2016-07-05 17:26:22 · 1954 阅读 · 0 评论 -
#、##、__VA_ARGS__和##__VA_ARGS__的作用
一、#用来把参数转换成字符串例子一:#define P(A) printf("%s:%d\n",#A,A);int main(int argc, char **argv){int a = 1, b = 2;P(a);P(b);P(a+b);system("pause");}输出为:例子二:#define SQUARE(x) printf("The square of "...转载 2021-02-26 09:55:08 · 168 阅读 · 0 评论 -
宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等宏变量:先举一个例子,会用到上面这些宏:#define myprintf(...) printk("[lch]:File:%s, Line:%d, Function:%s," \ __VA_ARGS__, __FILE__, __LINE__ ,__FUNCTION__);此处的 #define 的作用是将 myprintf( )换成后面那一大串的内容,而转载 2021-02-26 09:47:24 · 314 阅读 · 0 评论 -
C++ new动态数组初始化
//strlen函数是不包括‘\0’的长度的,sizeof计算的结果才包括'\0'的长度://C++ new动态数组初始化void testnew( const char* str ){ if (!str){ m_pdata = 0; } else{ int len = strlen(str); m_pdata = new char[len + 1]; strcpy(m_pdata,str); .转载 2021-02-25 16:47:35 · 3450 阅读 · 0 评论 -
c++深拷贝和浅拷贝
C++中类的拷贝有两种:深拷贝,浅拷贝:当出现类的等号赋值时,即会调用拷贝函数一:两个的区别1 在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制。当数据成员中没有指针时,浅拷贝是可行的;但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两次析构函数,而导致指针悬挂现象,所以,此时,必须采用深拷贝。2 深拷贝与浅拷贝的区别就在于深拷贝会在堆内存中另外申请空间来储存数据,从而也就解决了指针悬挂的问转载 2021-02-25 16:19:37 · 10428 阅读 · 1 评论 -
基类与派生类,父类指针指向子类对象
参考链接转载 2021-02-25 13:28:07 · 110 阅读 · 0 评论 -
回调函数中调用类中的非静态成员变量或非静态成员函数
有关这方面的问题,首先说一点:回调函数必须是静态成员函数或者全局函数来实现回调函数,大概原因是普通的C++成员函数都隐含了一个函数参数,即this指针,C++通过传递this指针给成员函数从而实现函数可以访问类的特定对象的数据成员。由于this指针的原因,使得一个普通成员函数作为回调函数时就会因为隐含的this指针问题使得函数参数个数不匹配,从而导致回调函数编译失败。基于上面的理论,如何在类中封装回调函数呢?回调函数只能是全局函数或者静态成员函数,但是由于全局函数会破坏封装性,所以只能用静态成员转载 2020-05-18 14:30:50 · 845 阅读 · 2 评论 -
C++遍历文件夹下的所有文件
转自:http://blog.csdn.net/idmer/article/details/53524443数据分多个文件存储,读取数据就需要对多个文件进行操作。首先就需要定位到文件的名字,之后再对文件进行相应的读写操作。多次涉及多文件的读写操作,现将这个实现总结一下,方便自己和他人使用。具体代码如下:[cpp]view plaincopy原创 2017-08-03 14:41:15 · 3022 阅读 · 1 评论 -
C/C++ 在处理文件所在路径下创建子目录
在一些图像处理或者数据处理时,需要给计算返回的数据指定一个存储路径,如果直接以被处理的文件所在路径下,并以其名命名自动生成一个文件夹,挺方便的,做法如下;CreateSubfolder.h/* create subfolder for results saving. - Email: yahui.cvrs@gmail.com - Address: Computer Vi原创 2017-07-07 18:01:59 · 1353 阅读 · 1 评论 -
GBK与UTF-8 之间的相互转换
1、将GBK转换成UTF8string GBKToUTF8(const std::string& strGBK){ string strOutUTF8 = ""; WCHAR * str1; int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0); str1 = new WCHAR[n]转载 2017-05-15 16:26:25 · 5165 阅读 · 0 评论 -
C++智能指针的理解与实现
转载:http://blog.csdn.net/taoyanqi8932/article/details/52938535目录(?)[-]一什么是智能指针二常见的智能指针三智能指针的实现与比较一、什么是智能指针 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,转载 2017-01-19 17:51:03 · 649 阅读 · 0 评论 -
批量生成文件夹下的图片路径目录--用于批量处理
dir/bb:只显示当前目录下文件名及文件夹名dir/a-d/ba-d:只是显示该目录下的文件名(没有了文件夹的名)dir/s/bS:显示该目录下的文件名和文件夹名,及子目录下的文件名,并显示这些文件的绝对路径dir/s/a-d/bdir/s/a-d/b>F:\目录.txt就会在F盘生成一个文件名为 目原创 2016-09-06 18:10:14 · 7124 阅读 · 0 评论 -
C和C++中struct使用的区别
今天参看了louden用c编写的编译器,发现其中一些地方使用struct很奇妙。所以又研究了一下struct的区别,并发现c和c++在某些地方是有区别的。struct作为类的一种特例,是用来自定义数据结构的,在编程的过程中是很有用的。C和C++的主要区别是:一个结构标记声明后,C语言必须在结构标记前加上struct才能作为结构类型名,而C++语言中,结构标记可以直接作为结构类型转载 2016-02-19 14:39:36 · 2618 阅读 · 0 评论 -
malloc/free和new/delete的区别
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于ma转载 2016-02-19 16:32:39 · 395 阅读 · 0 评论 -
OpenMP并行程序设计——for循环并行化详解
版权声明:本文为博主原创文章,未经博主允许不得转载。 转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/40018735 在C/C++中使用OpenMP优化代码方便又简单,代码中需要并行处理的往往是一些比较耗时的for循环,所以重点介绍一下OpenMP中for循环的应用。个人感觉只要掌握了文中讲的转载 2016-07-11 17:11:59 · 14163 阅读 · 1 评论 -
C++ pair(对组)用法
类模板:template struct pair参数:T1是第一个值的数据类型,T2是第二个值的数据类型。功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。具体用法:1.定义(构造):1 pairint, double> p1; //使用默认构造函数2转载 2016-07-14 17:03:13 · 6918 阅读 · 0 评论 -
字符数组与字符指针数组的区别
char * kChars[]={"0","lala","2","uuu","4","5"};//双引号//char kChars[6]={'0','1','2','3','4','5'};//单引号cout<<kChars[1]<<endl;原创 2016-07-15 11:21:37 · 409 阅读 · 0 评论 -
VC++中subclassdlgitem函数的功能及用法
subclassdlgitem 该函数用来子类化一个控件. Subclass(子类化)是MFC中最常用的窗体技术之一。子类化完成两个工作:一是把窗体类对象attach到一个windows窗体实体中(即把一个窗体的hwnd赋给该类)。另外就是把该类对象的消息加入到消息路由中,使得该类可以捕获消息。 SubclassDlgItem可以把对话框中已有的控件与某个窗口对象动态连接起来,该转载 2016-07-27 08:55:40 · 740 阅读 · 0 评论 -
C/C++定义全局变量/常量几种方法的区别
在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你转载 2016-07-06 09:15:14 · 382 阅读 · 0 评论 -
C++头文件编译问题
一、C++编译模式 通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C++头文件编译问题 一、C++编译模式 通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的转载 2016-07-06 22:04:13 · 1461 阅读 · 0 评论 -
extern使用方法总结!
Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义。谨记:声明可以多次,定义只能一次。 函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern的。但是引用的时候一样是需要声明的。而全局变量在外部使用声明时,extern关键词是必须的,如果变量无extern修饰且没有显式的初始化,同样成为变量的定义,因此此时必须加extern,而编译器在此转载 2016-07-06 08:45:29 · 60459 阅读 · 6 评论 -
c++ 一个头文件引用另一个头文件的类
c++ 一个头文件引用另一个头文件的类----C++头文件相互引用,一个#include,另一个class CC++头文件相互#include时最好是:(1)在"CA.h"中 #include "CB.h".(2)在"CB.h"中用类的前向声明: class CA;(3)最好加上头文件卫士( #ifndef *** #define *** #endif)示例如下:转载 2016-02-19 17:10:39 · 12849 阅读 · 0 评论 -
CString和string的互相转换
CString转std::string 例子:CString strMfc("test");std::string strStl;strStl=strMfc.GetBuffer(0);std::string转CString 例子:CString strMfc;std::string strStl=“test“;strMfc=strStl.c原创 2016-07-07 17:44:58 · 328 阅读 · 0 评论 -
C++中的static关键字的总结
转自: 本文转自vckbase,作者:韩耀旭 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个转载 2015-06-09 19:41:13 · 332 阅读 · 0 评论 -
InitializeCriticalSection函数说明
VC函数声明 VOID InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection // critical section ); 函数功能 初始化一个临界资源对象 参数说明 lpCriticalSection 临界资源对象指针 返回值 没有转载 2016-07-21 11:28:34 · 6222 阅读 · 0 评论 -
C++中this指针的用法详解
转自:http://blog.chinaunix.net/uid-21411227-id-1826942.html1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指转载 2015-06-09 14:24:49 · 488 阅读 · 0 评论