自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

翻译 文件的内存映射

要先使用函数CreateFileMapping来创建一个想共享的文件数据句柄,然后使用MapViewOfFile来获取共享的内存地址,然后使用OpenFileMapping函数在另一个进程里打开共享文件的名称,这样就可以实现不同的进程共享数据。void FileMapping(void){ //打开共享的文件对象。 m_hMapFile = OpenFi

2016-04-26 11:14:44 451

转载 C语言最优状态机规范

前言近来思绪有点停不下来,构思了一个GUI的框架(用在Cotex-M平台上,很小),期待以后有时间去实现,里面有一个对触摸屏的检测,自然想到使用状态机进行消息的生成和分发,于是想着实现一个状态机实现的模型,以后再其他项目上应用也方便。 状态机的好处不用多说,自己百度去,但传统的编程模式,无论是C语言,或是硬件FPGA的Verilog都是采用switch-case结构,硬件的还好说,是并

2016-04-26 10:38:08 2062

转载 状态机

一 有限状态机的实现方式有限状态机(Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具,很多东西的模型实际上就是有限状态机。FSM的实现方式:1) switch/case或者if/else这无意是最直观的方式,使用一堆条件判断,会编程的人都可以做到,对简单小巧的状态机来说最合适,但是毫无疑问,这样的方式比较原始,对庞大

2016-04-26 10:16:42 1431

原创 OpenGL绘制一个点、线、多边形

#include "stdafx.h"#include #include // #include // #include #include const int n = 20;const GLfloat R = 0.5f;const GLfloat Pi = 3.1415926536f;void MyDisplay(void){ glClear(GL_COLOR_BUFFER

2016-03-06 17:52:40 3481

原创 OpenGL环境配置

学习OpenGL前的准备工作第一步,选择一个编译环境现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。我选择Visual Studio 2008和VC6++作为学习OpenGL的环境。第二步,安装GLUT工具包GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,

2016-03-06 16:44:45 372

原创 插入排序

//插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 //直接查找排序void direct_sort(int* list,int lenth){ for(int i=1;i<lenth;i++)//循环从第2个元素开始 { if(list[i]>list[i-1]) { int temp=list[i]; //哨兵 in

2015-11-20 15:07:08 305

原创 内存泄漏检

http://vld.codeplex.com/wikipage?title=Using%20Visual%20Leak%20Detector&referringTitle=DocumentationUsing Visual Leak DetectorThis section briefly describes the basics of using Visua

2015-11-13 13:27:38 337

转载 CListBox取消高亮选中状态的功能:

今天实现了一个关于CListBox取消高亮选中状态的功能:点击任意内容行,内容行高亮显示,点击内容行外位置,取消当前高亮,[cpp] view plaincopy CRect rect;   CPoint point;   int nSelectIndex = 0;   GetCursorPos(&point);//获取当前鼠标位

2015-10-31 16:30:21 1554

转载 从MVC架构到C++的多态实现

MVC在这几年应该被非常多的人所熟悉了,因为相当多的web框架采用的是这套架构,此外,早在MFC横行的年代,MFC所采用的document/view架构也是MVC架构的变种。包括QT,它的model/view亦是如此。只不过它们都将MVC中的view和controller的功能整合到了一起。MVC的全称是model-view-controller architecture,最早被用在了smal

2015-09-06 10:58:15 381

原创 二分查找算法

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以

2015-03-20 13:10:42 387

原创 DLL工程调试方法

最近的项目比较大,历史版本比较多,由于权限原因,有些工程代码无法获得,所以自己写的DLL工程如果只用自己的测试程序,难以完成所有case的测试。经过查阅资料,VS2010DLL工程的调试方法如下。     1.右击工程名,properties->Configuration Properties->Debugging     2.debug to  launch 选项:如果是本地调试,选择

2015-03-14 10:07:47 931

原创 堆排序

二. 算法描述   堆是一种完全二叉树结构,并且其满足一种性质:父节点存储值大于(或小于)其孩子节点存储值,分别称为大顶堆、小顶堆。堆一般采用数组进行存储(从下标为1开始),则父节点位置为i,那么其左孩子为2*i,右孩子为2*i + 1。 ki≤K2i且ki≤K2i+1或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ )二. 算法分析平均时间复杂度:O(nlog

2015-03-09 15:45:34 281

原创 C++编程对缓冲区的理解

什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。为什么要引入缓冲区我们为什么要引入缓冲区呢?比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲

2015-01-29 10:07:43 1385

转载 program database for edit and Continue

调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单open。 1 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从Ap

2014-11-15 16:23:15 610

原创 CTabView使用方法

可以利用ctabview实现多视图切换,新jing

2014-08-08 09:51:01 2290

原创 OpenGL 显示文本

wglUseFontBitmaps函数显示文字----使用wglUseFontBitmaps()将ASCII字符装入显示列表,然后使用glCallLists()函数利用显示列表序列显示文本。wglUseFontBitmaps有四个参数,分别是当前使用的DC、从第几个ASCII字符起始装入列表、装入列表的ASCII字符数和起始的列表序号。glListBase()指定glCallLists执行

2014-06-12 14:36:52 960

原创 Decorator(装饰)模式

1.意图动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator(装饰)模式相比生成子类更为灵活。在系统开发的过程中,我们希望给某个对象而不是整个类添加一些功能。例如:我们要做一扇门,现在为了能将门做的美观和安全需要给门加上锁和把手,还可能给门加上窗户和雕花。这里我们把这些要添加的东西叫做门的属性。使用继承机制是添加功能的一种有效途径,从其他类继承过来的属性可以被多个

2014-06-12 10:41:47 468

原创 DYNAMIC_DOWNCAST

DYNAMIC_DOWNCAST(class, pointer ):如果pointer指针所指向的对象是class类型的,就返回这个指针。否则返回NULL例如 你获取到一个指针 XXX *pointer; 你想判断它是不是指向某个类 ,例如 A 这个类A* p= DYNAMIC_DOWNCAST(A, pointer );如果pointer是指向A这个类则返回此指针,否则返

2014-06-09 15:43:08 704

原创 基于OpenGL的VS2010开发

生成OpenGL程序的基本步骤和条件         本文将给出一个例子,这个例子是一个用OpenGL显示图像的 Windows程序,通过这个程序我们也可以知道用OpenGL编程的基本要求。我们知道,GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC")。每一个GDI命令需要传给它一个

2014-06-09 13:49:35 755

原创 设计模式-----策略模式(strategy)

1.什么是策略模式策略模式属于对象行为模式,其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使它们可以相互替换。2.策略模式的结构策略模式是对算法的包装,把使用算法的责任和算法本身分开,委派给不同的对象管理。      环境(Context)角色:持有一个Strategy引用;抽象角色(Strategy)对象:抽象角色,

2014-06-06 14:57:52 395

转载 视图分割与视图之间通信

我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗口被切分后用户可以使用鼠标移动切分条来

2014-06-06 11:31:43 440

转载 vs2010创建和使用动态链接库(dll)

本文将创建一个简单的动态链接库,并编写一个应用台控制程序使用该动态链接库,并提出了与实现相关的几个问题,供初学者交流。本文包含以下内容:创建动态链接库项目向动态链接库添加类创建引用动态链接库的应用程序在控制台应用程序中使用类库的功能更丰富的simpledll类和相关问题参考资料创建动态链接库项目:1、打开Microsoft

2014-06-05 13:08:07 428

原创 VS2010 属性设置 只生成exe

1、 取消增量连接jlk文件输出:  2、 取消pdb调试信息输出:  3、 将生成方式改为Release,点生成即可! 1234567890ABCDEFGHIJK

2014-06-05 11:07:29 673

转载 VISUAL C++界面编程

前言:拥有美丽的外观,软件就成功了一半。界面由控件、工具栏、菜单、窗体等元素组成,对他们进行美化就能得到一个美丽的界面。让控件更醒目在ComboBox中改变列表框的宽度我们经常会使用到组合框,而组合框是是有2种功能的--下拉和列表。一般情况下,列表框的宽度和选择框是一样宽的,但是我们有些时候确实很需要把列表框的宽度变大,一便让我们能更好的看我们要选的东西。  为了能有这

2014-06-04 10:15:07 3440

原创 MFC修改外观

1.修改EXE 图标ResourceView标签,选中资源ID为IDR_MAINFRAME图标资源,然后按Delete键把它删除掉。注意:一定要把它删除才行。    从Developer   Studio的Insert菜单中选择Resource,然后选择Icon,新建(New)一个新的图标或导入(Import)一个已有的图标。  2.

2014-06-04 10:07:39 587

转载 切割窗口

MFC支持两种类型的拆分窗口:静态的和动态的。静态拆分窗口的行列数在拆分窗口被创建时就设置好了,用户不能更改。但是用户可以缩放各行各列。一个静态拆分窗口最多可以包含16行16列。要找一个使用了静态拆分窗口的应用程序,只要看一下windows管理器即可。动态拆分窗口最多可以有两行两列,但它们可以相互拆分和合并。Vc就使用了动态拆分窗口使得可以同时编辑源程序文件的两个以上不同的

2014-05-29 16:36:24 557

原创 给视图添加控件

介绍在使用MFC Application Wizard时,如果选择Dialog Based App,添加控件是很容易的事情——只需要移动几下鼠标就可以轻松完成。但是,如果选择SDI或者MDI,添加控件就不是那么直接了。在此总结一下向视图添加控件的方法。子窗体的创建首先,使用App Wizard生成一个标准的SDI程序,我将它命名为AddCtrl。因为文档与这里要讨论的重点无

2014-05-29 13:59:06 1128

转载 MFC中添加一个对话框到主视图

0.假设工程名字为zheng。1.新建一个对话框,属性style:child,border:None,添加一个新类CMainView,使他继承自public CFormView。2.将CMainView的构造函数和析构函数由protected改为public。3.重写CMainView类的Create函数。4.将CzhengView类中的//CzhengDoc* GetDocume

2014-05-29 10:39:59 2987

TeeChart for .net 2010控件.rar

TeeChart for .net 2010控件.rar

2015-08-27

Windows核心编程-第五版中文版全

Windows核心编程-第五版中文版全 全面了解操作系统下的C++编程

2014-01-29

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

TA关注的人

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