![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
hapure1
这个作者很懒,什么都没留下…
展开
-
C++ 捕获异常
throw 要写在try 中 ,throw 出的异常,由catch 接住,然后做相应的处理C++异常机制使用了三个新的关键字 try ──标识可能出现的异常代码段throw ──抛出一个异常catch ──标识处理异常的代码段 提示: 使用异常处理将原创 2016-05-27 00:02:55 · 1058 阅读 · 0 评论 -
string 的几个接口函数,包括拼接复制等
strlen(s) Returns the length ofs, not counting the null. 返回s 的长度,不包括字符串结束符nullstrcmp(s1, s2)Compares s1 ands2 for equality. Returns 0 ifs1 == s2,positive value if s1 > s2, negati原创 2016-10-24 10:00:53 · 557 阅读 · 0 评论 -
有时间细读这些书
1、《Windows程序设计(第5版 珍藏版)》:这是很经典的一本介绍Win32 API编程的书了,基本介绍到了大多数关于Windows程序设计的基本内容。2、《Windows程序设计-王艳平版》:这本和上一本的区别在于,他讲到了WIN32编程很重要的HOOK技术,与及如何动态在DLL中查找所需函数等,需要一定的数据结构基础和操作系统的基本知识。3、《Windows网络编程》,转载 2016-10-13 20:23:39 · 772 阅读 · 0 评论 -
windows常用消息大全(系统消息、通告消息、用户消息)
附录A Windows 常用消息大全表A-1 Windows消息分布消息范围说 明0 ~ WM_USER – 1系统消息WM_USER ~ 0x7FFF自定义窗口类整数消息WM_APP ~ 0xBFFF应用程序自定义消息转载 2016-09-29 11:22:48 · 433 阅读 · 0 评论 -
一个简单的用户自定义消息传参的实例 postMessage 和 SendMessage
.h afx_msg void OnBnClickedButton1();afx_msg LONG OnMessageTest(WPARAM wParam, LPARAM lParam);.cpp#define WM_TEST_MESSAGE WM_USER+2120BEGIN_MESSAGE_MAP(CtestDlg原创 2016-09-29 12:01:37 · 5295 阅读 · 0 评论 -
<stdexcept> 头文件中定义的标准异常类
exceptionThe most general kind of problem.最常见的问题。runtime_errorProblem that can be detected only at run time.运行时错误:仅在运行时才能检测到问题range_errorRun-time error: result generated outside the rang原创 2016-10-28 10:07:20 · 1497 阅读 · 0 评论 -
模板类的使用- 简单使用
/* 类模板,但是在类外定义成员函数的时候,需要使用函数模板 */ #include using namespace std ; template class T> class Base { public : T a ; Base(T b) { a = b ;原创 2016-10-28 16:57:47 · 364 阅读 · 0 评论 -
C/C++之宏、内联函数和普通函数的区别
内联函数的执行过程与带参数宏定义很相似,但参数的处理不同。带参数的宏定义并不对参数进行运算,而是直接替换;内联函数首先是函数,这就意味着函数的很多性质都适用于内联函数,即内联函数先把参数表达式进行运算求值,然后把表达式的值传递给形式参数。 内联函数与带参数宏定义的另一个区别是,内联函数的参数类型和返回值类型在声明中都有明确的指定;而带参数宏定义的参数没有类型的概念,只有在宏展开以后,转载 2016-10-31 09:42:51 · 269 阅读 · 0 评论 -
MFC 改变对话框的背景色
重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。具体 步骤如下:---- ①在CExampleDlgDlg的头文件中,添加一CBrush的成员变量:class CExampleDlgDlg : public CDialog{protected:CBrush m_brush;};--原创 2016-10-08 15:46:20 · 286 阅读 · 0 评论 -
简单的按钮贴图
现引入bmp文件ID为IDB_BITMAP 其中m_ctrlButton为按钮地绑定成员变量在C*dlg类里添加protected:成员HICON m_hIcon;在OnInitDialog()函数中添加如下代码//C*dlg.cppBOOL CDemoDlg::OnInitDialog(){//添加BS_BITMAP风格m_ctrl原创 2016-10-08 16:08:51 · 459 阅读 · 0 评论 -
与容器共有的 string 操作
s.insert(p, t) 在迭代器p 指向的元素之前插入一个值为t 的新元素。返回指向新插入元素的迭代器s.insert(p, n, t)在迭代器p 指向的元素之前插入n 个值为t 的新元素。返回voids.insert(p, b, e)在迭代器p 指向的元素之前插入迭代器b 和e 标记范围内所有的元素。返回void原创 2016-10-31 16:26:01 · 220 阅读 · 0 评论 -
string 类 判断字符的一些函数
isalnum(c)True if c is a letter or a digit.如果 c 是字母或数字,则为 True。isalpha(c)true if c is a letter.如果 c 是字母,则为 true。iscntrl(c)true if c is a control character.如果 c 是控制字符,则为 trueisdigit(c原创 2016-10-23 12:53:14 · 328 阅读 · 0 评论 -
使一个非模态对话框随另一个对话框的移动而移动
主对话框A, 非模态对话框B。 使移动A时, B 随着A 的移动而移动在A中添加B 的指针变量mydlg *dlg ;某个按钮显示代码 dlg = new mydlg();dlg->Create(IDD_DIALOG1, this);dlg->ShowWindow(SW_SHOW| SW_NORMAL); A 中添加虚函数原创 2016-10-11 19:38:18 · 1333 阅读 · 0 评论 -
C++ typedef用法小结
转自 http://www.cnblogs.com/charley_yang/archive/2010/12/15/1907384.html第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下转载 2016-07-05 22:28:03 · 232 阅读 · 0 评论 -
函数后面 加上const
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。 在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。所以 const 关键字对成员函数的行为作了更加明确的限定:有 const 修饰的成员函数(指 const 放在函数参数表的后面,而不是在函数前面或者转载 2016-07-05 22:32:25 · 350 阅读 · 0 评论 -
C++类中的static数据成员,static成员函数
C++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口,其实可以这么理解:每个static数据成员可以看成是类的一个对象,而不与该类定义的对象有任何关系!下面我们就来具体转载 2016-07-05 22:33:57 · 244 阅读 · 0 评论 -
C++ 几个不常用的关键字
asm 插入一个汇编指令. auto 声明一个本地变量. const_cast 从一个const变量中抛出. dynamic_cast 动态投射. explicit 仅用在构造器的正确匹配. extern 告诉编译器在别的地方变量已经被定义过了. friend 允许非函数成员使用私有数据. inline 定义一个函数为内联. mutable 忽略const变量.原创 2016-07-07 17:03:37 · 317 阅读 · 0 评论 -
shared_ptr 真的非常的有用
shared_ptr是一个最像指针的"智能指针",是boost.smart_ptr库中最有价值、最重要的组成部分,也是最有用的,Boost库的许多组件--甚至还包括其他一些领域的智能指针都使用了shared_ptr。抱歉,我实在想不出什么更恰当的词汇来形容它在软件开发中的重要性。再强调一遍,shared_ptr非常有价值、非常重要、非常有用。 shared_ptr与scoped_ptr一样转载 2016-07-08 15:48:25 · 705 阅读 · 0 评论 -
C++中的explicit
C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。这样看起来好象很酷, 很方便。 但在某些原创 2016-07-09 17:08:11 · 206 阅读 · 0 评论 -
C++类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExampl原创 2016-07-09 17:25:03 · 244 阅读 · 0 评论 -
编写独立类的DLL
想把一些功能性操作封装成类,并将类封装到DLL。1. 建立工程,选WIN32, 空工程, DLL。建完之后可以在里面添加类了,类的声明在.h中,类的定义在.cpp中。在类的声明处,用__declspec(dllexport) 表明该类是要导出的。如果要使用stl,比如list,可以直接#include2,在调用dll的地方,添加附加目录(dll.h所在的目录),li原创 2016-08-26 10:25:37 · 301 阅读 · 0 评论 -
sprintf 实现 其他类型到字符串的拼接
字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。int _tmain(int argc, _TCHAR* argv[]){ char *s = new char[20];char* who = "I";char* whom = "CSDN";sprintf(s, "%s love %s.", who, whom原创 2016-10-10 15:24:50 · 4286 阅读 · 0 评论 -
MFC 客户区 模拟标题栏 功能 ,实现窗体拖动
移动标准窗口是通过用鼠标单击窗口标题条来实现的,但对于没有标题条的窗口,就需要用鼠标单击窗口标题条以外区域来移动窗口。有两种方法可以达到这一目标。 方法一: 当窗口确定鼠标位置时,Windows向窗口发送WM_NCHITTEST消息,可以处理该消息,使得只要鼠标在窗口内,Windows便认为鼠标在标题条上。这需要重载CWnd类处理WM_NCHITTEST消息的OnN原创 2016-10-11 11:25:50 · 2117 阅读 · 0 评论 -
创建非模态对话框
mydlg *dlg = new mydlg();dlg->Create(IDD_DIALOG1, this);dlg->ShowWindow(SW_SHOW| SW_NORMAL);原创 2016-10-11 18:39:59 · 390 阅读 · 0 评论