自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

原创 MFC内部机制探秘

由于MFC应用程序涵盖了基于SDK的windows程序几乎所有的功能,所以使用MFC AppWizard创建的MFC程序将自动具有WIndows程序的基本功能,我们今天就来探寻一下MFC的框架机制。首先大家先利用向导制动建立一个基于MFC的单文档应用程序。我取名为MFC_DISCOVER,方便大家自己验证自己的程序。(多图预警)1.声明全局对象\quad利用应用程序对象theApp启动应用程序,th

2016-04-29 09:55:44 2816

原创 Window程序的结构--学习笔记

学过C系语言编程的都知道,程序的入口一定是main()函数,在windows系统中也有这样的函数,它叫WinMain函数。WinMain函数是所有windows程序的入口,主要负责注册窗口类,创建并初始化窗口,进入消息循环,以及消息循环检索到WM_QIUT消息时,终止程序执行。下面详细说明\quad在此之前,请看下面的代码:int WINAPI WinMain( HINS

2016-04-28 16:43:01 1596

原创 Windows消息队列学习笔记

1.windows消息和消息结构一条消息是作为一个结构传递给应用程序的,这个结构中,包含了消息号,消息的类型,字参数和长字参数等信息。结构定义如下:typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG;第一个成员变

2016-04-27 17:12:47 4538

转载 MFC框架的一种理解方法

MFC的水很深,如果你想搞清楚所有的的细枝末节,恐怕我这里就帮不到你了,需要看侯捷的《深入浅出MFC》之类的书籍,一般而言,我们没必要知道所有的底层技术,但是知道一点基本的框架,对于编程还是很有用的。\quad一个简单的MFC程序\quad通常而言,我们在生成MFC程序的时候都是直接用类向导(class Wizard)生成好一个框架,你若想通过这个框架去分析MFC的机制,就会发现越深入,越难懂。

2016-04-27 00:25:03 6088

翻译 c++ lambda表达式

c++lambda表达式是c++11中的新增特性,最开始知道lambda表达式的时候,是学习python,python中的lambda表达式是用于简化函数编写,同样,我认为c++引入这个也是为了方便,lambda表达式并非不可替代,但是合理用lambda表达式,可能会事半功倍,至少也能少打一些字吧。\quad我在前面讲函数对象时说到过很多stl算法都需要一元谓词,二元谓词,先看一个例子:templa

2016-04-21 16:33:41 617

翻译 C++函数对象-谓词

函数对象(也叫functor),听起来或许有点陌生,但他们是c++实体,即使你没有用过,也一定见过,只是你没有意识到而已。从概念上讲,函数对象时用作函数的对象;但是从实现上来说,函数对象时实现了 operate()的类的对象。虽然函数和函数指针也可以归为函数对象,但实现了operate()的类的对象才能保存状态,才能用于STL。\quad我们直接看定义: - 一元函数:接受一个参数的函数,如f(x

2016-04-20 23:34:29 2685

转载 使用宏避免多次包含

\quad在写程序是时考虑这样一种情况:如果头文件class1.h中声明了一个类,而这个类将class2.h中的声明作为类成员,则需要在class1.h中包含class2.h。如果设计非常复杂,即第二个类也需要第一个类,则class2.h中也包含class1.h.\quad然而在处理器看来,两个头文件彼此包含会导致递归问题,为了避免这种问题,可以结合使用宏以及预处理器编译指令#ifdef和#endi

2016-04-13 12:04:57 781

翻译 C++类型转换之dynamic_cast

C++提供了一种新的类型转换运算符,专门用于继承的情形,这种情形在c语言中不存在。再说dynamic_cast之前,我想先说说static_cast \quadstatic_cast用于在相关类型的指针之间进行转换,还可以显示地执行标准数据类型的类型转换—这种转换原本将自动或隐式进行。用于指针时,static_cast实现了基本的编译阶段检查。确保指针被转换为相关类型。这改进了c风格类型转换,在c语

2016-04-12 23:45:13 669

翻译 含有指针成员时的赋值运算符重载

如果类封装了原始指针,如下面这个类:class MyString{private: char* Buffer;public: // constructor MyString(const char* InitialInput) { if(InitialInput != NULL) { Buffer = new char [strle

2016-04-12 21:26:31 2002

翻译 运算符重载之转换运算符

我们知道c++中,cout<<3、cout<<"hello"是没有问题的,但是若你声明了一个类Fish,想输出类的相关信息,使用cout<<Fish是无法正确被识别的。当然你可以申明一个类成员函数print(),调用Fish.print(),但是我们可以重载转换运算符,使得输出根伟方便我们知道c++中,cout<<3、cout<<"hello"是没有问题的,但是若你声明了一个类Fish,想输出类的相

2016-04-11 10:33:46 940

转载 虚函数的工作原理--虚函数表

请看下面的Base类,它申明了N个虚函数:class:Base{public: virtual void func1() { //Func1 implementation } virtual void func2() { //Func2 implemetation } //..so on and so for

2016-04-10 16:51:39 684

翻译 C++中的为什么需要虚析构函数

让我们先看一个简答的例子:#include <iostream>using namespace std;class Fish{public: Fish() { cout << "Constructed Fish" << endl; } ~Fish() { cout << "Destroyed Fish" << endl; }};cl

2016-04-10 11:53:32 860

原创 关于C++中getline()函数的一个陷阱

最近写代码的时候遇到一个问题,就是getline函数接受标准输入(键盘)时,失效了。请先看代码:#include<iostream>#include<vector>#include<string>using namespace std;int main(){ cout<<"your age:"<<endl; int a; cin>>a; string str1

2016-04-07 20:26:05 5914 3

timestamp.proto

用于记录文件传输的时间戳,常常被包含在你自己写的proto文件下。

2019-04-09

google/protobuf/duration.proto

google proto-buf中常被使用的一个计时文件,可能你的proto文件需要使用

2019-04-09

Windows系统下西门子通信动态链接库

西门子通讯系统的动态链接库。实测可以运行,安全无毒,放心下载。

2019-04-03

java核心编程配套源代码

自己下载时看到要很多积分,于是就去官网下载了,有第10,9,8版的。本来想免费的,发现不能设置为零,有的人居然要10多个积分,气愤。

2018-01-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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