自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 C++技术路线

随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架...

2020-05-16 13:42:25 194 0

原创 C++控制台程序停下来--实现暂停功能

一、针对Microsoft #include <stdlib.h> (1)第一种方式 system( "PAUSE "); -------------------- (2)第二种方式 getchar(); // 这招对QT程序也有用 --------------...

2020-04-25 10:21:14 62 0

转载 setlocale()函数的作用

一、C 和 C++ 的标准库分别有自己的 locale 操作方法,C 标准库的 locale 设定函数是 setlocale(),而 C++ 标准库有 locale 类和流对象的 imbue() 方法。这篇讲解 C 标准库中 setlocale() 的使用。 GNU libc 中的 setl...

2020-04-21 15:37:21 56 0

转载 C++ Unicode SBCS 函数对照表

因为项目碰到了国际化的问题,自己整理了一下,主要是从tchar.h里面导出的 包括类型和各类字符相关的处理函数,大部分都应该是用不到的。如果有想用自动化工具替换字符升级到unicode版本的,这个列表就比较全了。至于转换工具的替换规则,以后再发 Generic SBCS UNI...

2020-04-21 14:38:21 33 0

原创 CListCtrl

GetFirstSelectedItemPosition(); 返回值是个指针,获取的是当前位置的指针 GetNextSelectedItem(); 返回值是int,参数是position类的一个指针,根据参数,获取当前位置的索引。 把列表看做是一个数组,获取的是该数组(pos指针)的下标 ...

2020-04-20 22:47:39 30 0

原创 跳转语句break、continue、goto的区别

1、我们的目的是讲解“跳转语句”的区别 2、先把c++中包含的几个语句先总结概括一下 几种典型的c++语句: ①空语句+语句块; ②条件语句(if,switch); ③迭代语句(while,do-while,for,范围for); ④跳转语句(break,continue,goto) ...

2020-04-19 18:10:36 44 0

原创 十六进制左移

2020-04-17 10:09:16 67 0

原创 Tokenize

Cstring szValue= _T("张三 男 高三 18"); szValue.TrimRight(_T(" \n")); iStartPos = 0; szToken = szValue.Tokenize(_T(" "), iSt...

2020-04-10 11:22:22 61 0

原创 GUID的生成使用,生成全球唯一名称字符串

在工作的文档中出现了随机因子(Random Factor),不是我们通常使用的随机数srand,它最大的作用是避免随机相同 1,涉及API及结构 使用CoCreateGuid函数即可。需要objbase.h头文件。 原型: HRESULT CoCreateGuid( GUID *...

2020-04-07 15:19:51 39 0

转载 微软的COM中GUID和UUID、CLSID、IID

当初微软设计com规范的时候,有两种选择来保证用户的设计的com组件可以全球唯一: 第一种是采用和Internet地址一样的管理方式,成立一个管理机构,用户如果想开发一个COM组件的时候需要向该机构提出申请,并交一定的费用。 第二种是发明一种算法,每次都能产生一个全球唯一的COM组件标识符。 ...

2020-04-07 15:08:22 26 0

转载 串行通信

串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。数据转换是指数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据...

2020-04-05 16:19:59 85 0

原创 uchar类型加减运算

1、uchar 类型只能保存0-255的数字。超过了会溢出,溢出后会从0开始继续累加。所以小心使用 uchar u; u +=u; 溢出了也不会提醒你 2、 计算机CPU只有加法逻辑运算器,对于减法运算,是使用两个数的补码进行加法运算。 50-100=? 50的二进制是: 0000...

2020-04-04 13:38:35 108 0

原创 Format

1、实现可变保留位数 格式化

2020-03-31 11:13:21 21 0

转载 DbgView 显示OutputDebugString 输出内容 不能显示问题总结

1. 是否有其他编辑器作为了Debug信息输出窗口。 例如:vc在debug时调用OutputDebugString的内容不会输出到DbgView上。 2.版本是否正确。 分两种: Under Windows 9x/MeDebugViewcan capture output from the...

2020-03-28 16:20:15 39 0

转载 纯虚函数

纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。 定义 编辑 纯虚函数是一种特殊的虚函数,它的一般格式如下: class <类名> { virtual <类...

2020-03-25 16:52:58 39 0

原创 c/c++位运算--判断对应标识位是否为1

//判断DWORD对应位是否为1 //b为需要判断的数, i为对应的位数 BOOL TestDword(DWORD b, DWORD i) //判断b的第i位是否为1 { ATLASSERT(i <= 31); return (b&(0x01<<i))=...

2020-03-25 10:19:28 47 0

原创 c++多继承构造函数调用

构造函数的调用顺序从上面的分析中可以看出,基类构造函数总是被优先调用,这说明创建派生类对象时,会先调用基类构造函数,再调用派生类构造函数,如果继承关系有好几层的话,例如: A --> B --> C 那么创建 C 类对象时构造函数的执行顺序为: A类构造函数 --> B类构...

2020-03-24 09:41:29 45 0

原创 GetPrivateProfileInt

获取文件中指定的条目的值。 UINT WINAPI GetPrivateProfileInt ( _In_LPCTSTR lpAppName, //节目名. _In_LPCTSTR lpKeyName, //键名. _In_INT nDefault, //默认键值 _In_LPCTST...

2020-03-18 14:22:15 26 0

转载 C++/MFC计算程序运行时间

在我们实际的编程工作中,经常要测量程序的运行时间,比如衡量算法的运行时间等等。在这里我收集了网上集中测量程序运行时间的方法。 通过网上查阅资料,找到以下几种VC中求取程序运行时间的方法: 方法一 利用GetTickCount函数(ms) 代码: CString str; longt1=G...

2020-03-16 16:18:02 41 0

原创 互斥器mutex

对于多线程,当一个线程1在访问一个资源A的时候, 其他线程不能再对资源A进行访问! 必须等到线程1不在访问资源A的时候,其他线程才能去访问资源A。 ==>这就需要做:在多个线程之间做一个同步! 1.创建一个互斥器对象 hMutex=CreateMutex(NULL,TRUE,...

2020-03-02 23:07:31 33 0

原创 CloseHandel(ThreadHandle )函数

很多程序在创建线程都这样写的: ............ ThreadHandle = CreateThread(NULL,0,.....); CloseHandel(ThreadHandle ); 。。。。。 这不是刚好创建又关闭了吗?线程怎么运行呢? ====================...

2020-02-27 12:42:00 23 0

原创 SetEvent()和ResetEvent()

设置事件为有信号状态时,线程就执行完毕了!! BOOL SetEvent(HANDLE hEvent); 其中hEvent表示句柄,返回值:如果操作成功,则返回非零值,否则为0。 说明 设置事件的状态为有标记,释放任意等待线程。 如果事件是手工的,此事件将保持有标记直到调用ResetEv...

2020-02-23 23:12:11 34 0

原创 ReadFileEx

ReadFileEx是一个Windows API函数。与ReadFile相似,只是它只能用于异步读取文件操作,异步操作完成后会调用指定的回调函数。 BOOL ReadFileEx( HANDLE hFile, ...

2020-02-23 22:15:20 39 0

原创 MFC SendMessage()函数传递数据

比如:用其传递字符串 CString cstr1 = _T("123");CString cstr2 = _T("hello");::SendMessage(hWnd, WM_XXX, (WPARAM)(LPCTSTR)cstr1, (LPARAM)(LP...

2020-02-23 10:13:32 57 0

原创 在一个类中调用另一个类的2种方法

1、使用窗口类的指针 1.1在类A中定义这个窗口的指针 1.2在类A的构造函数中将窗口的指针设置为空指针 1.3在对应的点击事件中,new一个这个窗口的对象出来,然后再用这个对象调用窗口函数 2、直接使用窗口对象 2.1在类A中定义这个窗口的对象 2.2在对应的点...

2020-02-20 12:04:06 60 0

原创 CreateFile

这是一个多功能的函数,可打开或创建文件或者I/O设备,并返回可访问的句柄:控制台,通信资源,目录(只读打开),磁盘驱动器,文件,邮槽,管道。 HANDLE CreateFile(LPCTSTR lpFileName, //普通文件名或者设...

2020-02-15 17:11:19 63 0

原创 CreateEvent

CreateEvent是一个Windows API函数。它用来创建或打开一个命名的或无名的事件对象。如果想为对象指定一个访问掩码,应当使用CreateEventEx函数。 HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes,/...

2020-02-12 10:52:54 20 0

转载 类和线程的关系

这种理解,如果代码写得多,思考得多,就会有自己的一套理解方式,而正确的理解往往都是相同的,不对的理解千奇百怪。在C++/Java中,线程以类的形式展现给编程人员,所以编程人员可以通过类来创建线程,而线程执行又需要有类的方法作为执行代码,两者相互联系又相互独立。实际上线程是操作系统层次提供的能力,任...

2020-02-11 14:28:01 33 0

转载 xpath语法规则

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基...

2020-01-17 13:40:14 36 0

原创 为什么在网络程序设计中服务器端必须使用bind函数来绑定IP地址和端口号,而客户端不需要使用bind函数来绑定IP地址和端口号呢?

Socket: 为什么服务器端只需要一个:服务器端口 客户端需要:服务器端口 + 服务器IP 因为服务器是时时在监听(Listen)有没有客户端的连接。如果服务器不绑定IP和端口的话(Bind),客户端上线的时候怎么连到服务器呢。所以服务器要绑定IP和端口,而客户端就不需要了。(注意...

2020-01-08 13:30:58 212 0

原创 CString类的Format函数(设定有效位)

如下图所示:

2020-01-06 16:41:27 18 0

转载 C++类的静态成员变量一定要定义(分配内存)

我们知道C++类的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。 两者的区别在于:初始化是赋一个初始值,而定义是分配内存。 静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面...

2019-12-30 16:27:01 22 0

原创 c++ 静态函数

1、对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员或静态方法 2、只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为静态成员变量在对象创建之前就已经被分配了内存空间) 3、静态成员变量虽然在类中,但它并不是随对象的...

2019-12-30 16:09:24 14 0

原创 C++中static类型的成员变量不能在构造函数中定义

类中的静态成员变量的初始化必须在类外实现!! 类的定义是在头文件中,如果类的成员变量是static,static声明的成员变量是说明这个变量是属于整个类的,而不是某个对象的(除了单例模式,一个类都可以定义无数个对象),所以对static成员变量的定义/初始化不可以放在构造函数中(定义对象时才会调...

2019-12-30 15:38:17 75 0

原创 c++中类的构造函数的作用

构造函数的作用:初始化对象的数据成员。

2019-12-27 15:11:20 40 0

原创 GDI绘图中,SelectObject()函数作用

SelectObject()作用:选入一个GDI对象。同时会返回(选出)先前选入设备上下文的同类的GDI对象。 CPen newPen; CPen *oldPen; newPen.CreatePen(PS_SOLID,2,RGB(192,192,192));//创建对象 oldPen = ...

2019-12-24 09:59:18 23 0

原创 AFX_VIRTUAL

//{{AFX_VIRTUAL、/{{AFX_MSG、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT 我们看到很多这样打头的代码,其中典型的一个,在你应用程序的 CApp 头文件中。 对于类向导来说。这个符号才是有意义的。它是一个消息处理函数的前缀,类向导生成的消息函数,分发...

2019-12-12 17:32:01 28 0

转载 自绘控件--对应的不同的消息,在对应的消息响应函数中绘制

1、按钮、标签、列表框(ListBox)、组合框(ComboBox)、菜单等,在父窗口的WM_DRAWITEM消息里绘制 2、列表视图(ListView、ListCtrl)在WM_NOTIFY消息的NM_CUSTOMDRAW里绘制没有这些消息的再考虑WM_PAINT 3、如果上述消息不能实现,...

2019-12-07 11:30:53 26 0

转载 子类化方法自绘按钮

1.新建一个基于对话框的MFC程序。 2.在工程中添加一个新类CMyButton,基类选择CButton。 3.然后转至新生成的MyButton.h头文件中,将鼠标放在类名CMyButton上点击一下,打开“属性”窗口,在“消息”按钮下为此类添加WM_LBUTTONDOWN,WM_LBUTTO...

2019-12-06 13:39:06 38 0

原创 MFC 单文档应用程序 基本框架结构

本文将剖析基于MFC的框架程序,探讨MFC框架程序的内部组织结构,MFC是微软为了简化程序员的开发工作而设计的一套c++类集合,利用这些类有 效地帮助程序员完成windows应用程序开发。 主要类之间的关系 CTestApp类处理消息,将收到的消息分发给相应的对象。 CMainFram...

2019-12-05 15:00:27 204 0

提示
确定要删除当前文章?
取消 删除