![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MFC
文章平均质量分 79
雪岢奇
在职员工
展开
-
(深入探讨线程设计)以及MsgWaitForMultipleObjects函数的使用要点
使用多线程技术可以显著地提高程序性能,本文就讲讲在程序中如何使用工作线程,以及工作线程与主线程通讯的问题。一 创建线程 使用MFC提供的全局函数AfxBeginThread()即可创建一个工作线程。线程函数的标准形式为 UINT MyFunProc(LPVOI原创 2011-09-21 14:37:07 · 1017 阅读 · 0 评论 -
MFC 多语言系统的制作
对于软件系统,我们可以常看到其支持做种语言系统,比如中文、英文等等。那么在MFC中如何实现呢?其实很简单。制作流程如下。一下以最简单的对话框为列做个示范,大系统同样是该流程。(这里IDE使用 VC6.0 )1、创建简单的对话框应用程序Dlg,同时添加Static文本控件。2、创建动态库项目S_Chinese(空项目则可),然后把步骤一中所说的项目下的res文件夹、.rc文件、.reso原创 2012-09-18 20:06:35 · 2954 阅读 · 0 评论 -
程序托盘
MFC 封装类/////////////////////////////////////////////////////////////////////////////// SystemTray.h : header file//// Written by Chris Maunder (chrismaunder@codeguru.com)// Copyright (原创 2012-04-19 10:20:00 · 1067 阅读 · 0 评论 -
error LNK2005: _DllMain@12 already defined in xxx.OBJ 解决办法
用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误: error LNK2005: _DllMain@12 already defined in xxx.OBJ几种解决方案:1, 你只需要在工程设置里面,把WIN32,NDEBUG原创 2012-03-26 17:29:28 · 1356 阅读 · 0 评论 -
在Visual Studio下编写64位应用程序应注意什么
64位应用程序的执行效率要比32位应用程序高的多。随着64位操作系统的逐渐普及,64位应用程序也必将随之风靡。在Visual Studio中也已经支持了64位应用程序的开发。笔者在这里就将其开发要点做一下总结。权当作抛砖引玉,跟大家切磋一下。 一、确定在64位操作系统上运行还是在WOW64下运行。 在Visual Studio平台中最后对64位应用程序编译时,需要指定这个应用程序是在6原创 2012-03-01 21:20:16 · 3069 阅读 · 1 评论 -
多线程学习笔记
多线程学习笔记 多线程概述 进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。 线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说main或W转载 2012-01-04 22:06:25 · 1097 阅读 · 1 评论 -
让程序在崩溃时体面的退出之SEH
SEH的全称是Structured Exception Handling,是Windows操作系统提供的一种异常处理方式。SEH是属于操作系统的特性,不为特定语言设计,从它的名字就能看出它是一种结构化的异常处理方式。SEH包括了2个部分:终止处理__try/__finally和异常处理__try/__except,下面分别进行介绍。 终止处理__try/__finally转载 2011-12-29 21:35:51 · 523 阅读 · 0 评论 -
进程间通信详解 - 剪贴板实现
引子由于在启动一个进程后,操作系统会给这个进程分配 4GB 的私有地址空间,至于为何有 4GB 这么大,那得考虑进程的私有地址空间和实际物理内存地址空间之间的映射以及页交换等等细节问题了,这里不予讨论,从名字就可以知道,既然操作系统给每一个进程分配的是私有地址空间,自然,这段地址空间也只有这个进程自己才能访问了,不然还称为私有干吗呢?既然这段私有地址空间只能转载 2011-11-13 21:43:47 · 1480 阅读 · 0 评论 -
进程间通信详解 - 邮槽实现
引子前面的一篇博文介绍了进程之间通信的一种最为简单的方式,也就是在本地进程之间通过剪贴板来实现进程间通信,而剪贴板自有其缺陷,很显然的是,剪贴板只能在本地机器上实现,无法实现本地进程与远程服务器上的进程之间的通信,那么有没有办法实现本地进程和远程进程的通信呢?办法自然是有的,要是实在搞不出,我拿 Socket 来实现本地进程和远程进程的通信来转载 2011-11-13 21:42:09 · 1779 阅读 · 0 评论 -
进程间通信详解 - 命名管道实现
引子好,到这里呢,就需要介绍实现进程间通信的第四种方式了,也就是通过命名管道来实现,前面介绍的那三种方式呢,都是有缺陷或者说局限性太强,而这里介绍的命名管道相对来说,在这方面就做得好很多了,比如,剪贴板的话只能实现本机上进程之间的通信,而邮槽的话虽然是可以实现跨网络之间的进程的通信,但麻烦的是邮槽的服务端只能接收数据,邮槽的客户端只能发送数据,太悲剧转载 2011-11-13 21:40:59 · 2739 阅读 · 0 评论 -
进程间通信详解 - 动态链接库实现
引子前面介绍的几种用于实现进程之间通信的方法都是比较正统的方式,像剪贴板,命名管道这些都还是用得比较多的,而这里将介绍的是一种比较偏门的方法来实现进程间的通信,所谓偏门呢,自然就是用的少,能够不用就不要使用。其实这种方法就是通过动态链接库来实现进程间的通信。 动态链接库(DLL)概述转载 2011-11-13 21:44:47 · 4055 阅读 · 3 评论 -
进程间通信详解 - 匿名管道实现
引子前面的两篇博文分别介绍了通过剪贴板和通过邮槽来实现进程之间的通信,其中剪贴板呢,是用来实现本地两个进程之间的通信,而邮槽则既可以实现本地两个进程之间的通信,也可以实现本地进程和服务器进程的通信,当然,上面这两种方式都是有局限性的,比如剪贴板就只能实现本地进程之间的通信,而在邮槽中,虽然是既可以实现本地进程之间的通信,又能实现本地进程和远程服务器进程的通信转载 2011-11-13 21:37:29 · 1416 阅读 · 0 评论 -
VC编译选项 MT MTd MD MDd 全面分析
VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库 库文件Single thread(static link) ML l转载 2011-09-25 15:18:39 · 1899 阅读 · 0 评论 -
定时器和多线程的不同
最近在做项目的时候,遇到了视频采集图像时。使用定时器与或使用多线程有些纠结。原先用了定时器测试了,因为项目需要占用较多的cpu,所以很明显图像显示比较卡。所以网上查了下。贴出来大家学习学习。 软件定时器和多线程在控制工程中有着非常转载 2011-08-26 22:42:44 · 17412 阅读 · 1 评论 -
(完整版)原因可能是堆被损坏,这也说明 中或它所加载的任何DLL 中有bug】的解决...
最近在开发项目的时候被这个错误郁闷很久,本来以为是dll加载出错或者是分配内存出错。找了很久都没找出。在网上找了些方法,终于在下面的方法中解决了问题。1、这是运行库文件时的错误。解决方案:打开项目属性-->配置属性-->C/C++-->代码生成-->运行时库,原创 2011-09-17 21:07:16 · 13359 阅读 · 1 评论