随笔分类 -  MFC

MFC程序编写
摘要:最近因为项目的需要,再次接触到多线程编程。这块一直是个难点,很多细节要注意,下面就谈谈最近遇到的一些问题。1. 用到多线程的地方主要是为了防止主线程卡住,这次在写的时候,也是因为想取巧,难得去开一个新的线程。就有了以下的种种故事,记下来也为了最近一段烦闷的时间: 在MFC下开发,基于对话框的一个程序,简单的生产者消费者问题,主界面负责消费,一个线程负责采集。当时为了偷懒:) 试过以下两种情况 1) 使用定时器,在定时器做消费任务,通过互斥信号量实现与生产线程的通讯。 结果发现,定时器根本无法获取到信号量,线程一直霸占不放(在我的程序中生产的任务比消费的任务重要),定时器根本就进入不了。回过.. 阅读全文
posted @ 2012-04-10 17:34 奔跑的兔子 阅读(600) 评论(0) 推荐(0) 编辑
摘要:MFC单文档程序架构解析这里我以科院杨老师的单文档程序来分析一下MFC单文档的程序架构,纯属个人见解,不当之处烦请指教!首先我们了解到的是图(一)theApp是唯一一个在程序形成的时候就存在的全局变量,它属于CstockAppApp类,而CstockAppApp继承于CwinApp类,我们看一下MSDN中CwinApp的继承关系如下:图(二)从继承关系当中,我们发现theApp是作为程序的实体而存在的,是单文档程序的核心。首先分析一下的是CsockAppApp这个类,这里面有一个重要的函数BOOLCStockAppApp::InitInstance()这个函数,包含了单文档程序中重要的信息,特 阅读全文
posted @ 2011-05-06 00:25 奔跑的兔子 阅读(21776) 评论(3) 推荐(5) 编辑
摘要:在网上找了很多的资料,现将这些资料整合起来,详细介绍一下VC下的socket编程,并提供一个服务器客户端具体的实例。希望对您有所帮助一、原理部分 (个人觉得这篇写的可以,所以转与此,原文地址:http://dev.yesky.com/78/2683078.shtml) 在网络编程中最常用的方案便是Client/Server(客户机/服务器)模型。在这种方案中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被"惊醒"并且为客户提供服务-对 阅读全文
posted @ 2011-03-06 17:48 奔跑的兔子 阅读(61694) 评论(9) 推荐(8) 编辑
摘要:今天对XML文件进行了一些简单的读写操作,下面来具体实现步骤:首先:建立一个基于Dialog的MFC工程,工程名为OperateXML,然后在对话框上添加两个按钮("Create"和"GetData"和一个ListControl控件(用来显示数据),首先要导入库文件#import "msxml3.dll"using namespace MSXML2;主要用来实现XML文件的相关操作,双击"Create"按钮进入代码编写,代码如下:void COperateXML::OnBtnCreate() {// TODO: A 阅读全文
posted @ 2011-03-03 23:48 奔跑的兔子 阅读(8344) 评论(2) 推荐(1) 编辑
摘要:(一) MFC多线程 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外 的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来 执行任务。 在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用 阅读全文
posted @ 2011-03-03 15:49 奔跑的兔子 阅读(1041) 评论(0) 推荐(1) 编辑