随笔分类 -  MFC的学习笔记

有些时候做些笔记怕以后自己忘记了来这里可以查询
 
如何区别PeekMessage&GetMessage SendMessage&PostMessage
摘要:转自http://blog.csdn.net/young0325/article/details/6430664Peekmessage和Getmessage都是向系统的消息队列中取得消息,不过性质不同。若第一次向消息队列中取不到消息,则程序的主线程会被OS(操作系统)挂起;等到OS重新调度到该线程时... 阅读全文
posted @ 2014-10-17 20:45 ljy2013 阅读(484) 评论(0) 推荐(0)
线程通信
摘要:一般可以有两种方式来实现线程间通信:1、使用全局变量2、使用自定义消息1、利用全局变量来实现线程通信通过一个例子来理解例子:设计一个以对话框为主界面的应用程序,当按下一个按钮时,启动一个从线程,该线程显示一个表示正在运行的对话框(在对话框的标题上显示一个随时间增加的数字),而当按下另一个按钮时从线程结束运行。实现:(1)用MFC创建一个基于对话框的应用程序,将ok按钮的标题修改为结束程序,将取消按钮的标题改为线程结束,在增加一个按钮,标题为线程开始。(2)在对话框的实现文件中定义一个全局变量BOOL bThreadExit=FALSE;(3)在对话框的实现文件中定义一个线程函数//定义一个线程 阅读全文
posted @ 2014-02-20 22:16 ljy2013 阅读(244) 评论(0) 推荐(0)
线程同步
摘要:在多线程的情况下,如果存在多个线程要使用同一个资源的情况时,这需要在线程之间进行协调(同步)才能是程序完成预定的工作,而不会出现灾难性的冲突。为了解决多线程之间的同步问题,MFC把对线程之间进行同步的一些基本操作封装在类CSyncObject中,为了适应在各种不同的情况下同步的需要,MFC又以类CSyncObject为基类派生了四种同步类,即事件,临界段,互斥体,和信号计数器,分别为:CEvents,CCriticalSections,CMutexes,CSemphores。这些类的声明都在头文件"afxmt.h"中。1、事件同步类:CEvent( BOOL bInitia 阅读全文
posted @ 2014-02-20 21:48 ljy2013 阅读(273) 评论(0) 推荐(0)
进程与线程的管理
摘要:1、进程和线程的基本概念:在计算机系统中,一个正在运行的应用程序就叫做一个进程,一个进程可以有多个线程,进程的任务是有这个进程的所有线程共同配合来完成的。一个进程至少有一个线程,叫做主线程。2、工作线程的创建:如何创建一个工作线程是一个比较容易的,只要清楚开启线程函数的原型就很简单了。开启线程的函数是AfxBeginThread,它主要有两种类型,分别是:CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nSt 阅读全文
posted @ 2014-02-20 20:45 ljy2013 阅读(350) 评论(0) 推荐(0)
lib静态链接库,dll动态链接库,h文件
摘要:最近在弄摄像头,发现我在调用摄像头自带的函数的时候,库没连接上,于是经过高人指点,学习了一下lib静态链接库,dll动态链接库来补充一下自己的基础知识。一、首先我们来介绍一下lib静态链接库。 lib静态链接库是在编译时要用到,如果只需要编译源代码的话只要有.lib文件就好了。下面主要讲一下在vs2010中如何使用自己建立的.lib文件,以及如何使用lib文件。 1、建立lib文件:首先在vs当中先建一个工程文件,然后单击下一步,选择lib静态链接库,紧接着就是建立自己的.h文件了,在h文件当中主要声明数据,函数,或者类,然后再.cpp源文件中实现相应的函数或者类。这是生成lib文件的过程.. 阅读全文
posted @ 2013-10-25 22:55 ljy2013 阅读(497) 评论(0) 推荐(0)