Window编程
zhiweiarm
座右铭:脚踏实地,志存高远
为人诚恳,沉着稳重,富拼搏精神,能吃苦耐劳。工作积极主动、认真踏实,有强烈的责任感和团队合作精神;有较强的学习和适应新环境的能力,求知欲望强烈;勇于迎接新挑战
精通C、C++语言,参与实际项目算法及软件的研发工作:1、处理图像微位移相关(Digital Image Correlation)算法研发;2、纳米三坐标测量机(CMM)测量软件的编写,圆满完成项目预定的目标; 3、熟悉linux系统,有ARM9嵌入式视频监控开发经验
展开
-
秒杀多线程第五篇 经典线程同步 关键段CS
上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。关键段CRITICAL_SECTION一共就四个函数,使用很是方便。下面是这四个函数的原型和使用说明。 函数功能:初始化函数原型:void Init转载 2012-05-06 23:26:48 · 309 阅读 · 0 评论 -
DLL 中 .def文件的使用
DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。 首先创建 一个DLL程序,.cpp中int __stdcall Add(int numa, int numb)原创 2013-05-23 10:50:52 · 620 阅读 · 0 评论 -
vs2010快捷键
VS2010版快捷键Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIF原创 2013-05-09 17:06:29 · 413 阅读 · 0 评论 -
《Windows核心编程系列》十一谈谈Windows线程池
Windows线程池 上一篇博文我们介绍了IO完成端口。得知IO完成端口可以非常智能的分派线程。但是IO完成端口仅对等待它的线程进行分派,创建和销毁线程的工作仍然需要我们自己来做。 我们自己也可以创建线程,但是涉及到线程的编码操作比较复杂,容易出现差错。为了简化程序员的工作,Windows提供了一个线程池机制来简化线程的创建、销毁以及日常管理。这个新线程池可能不转载 2013-02-05 11:45:12 · 591 阅读 · 0 评论 -
线程池的介绍及简单实现
线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原因。比如大家转载 2013-01-12 10:35:29 · 363 阅读 · 0 评论 -
进程和线程有什么区别
说法一:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建转载 2012-10-05 08:09:07 · 448 阅读 · 0 评论 -
采用链地址法处理冲突构造哈希表
1、背景引入 (1)线性表和树等线性结构中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需要进行一系列和关键字的比较。理想的情况是希望不经过任何比较,一次存取便能够取到所查找的记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字和结构中一个唯一的存储位置相对应。因而在查找时,只要根据这个对应关系f找到给定值K转载 2012-09-14 10:49:49 · 2407 阅读 · 0 评论 -
VC 最新界面库皮肤库
CJLib(mfc扩展开发包,是xtreme toolkit的前生,但xtreme toolkit收费了)http://www.codejock.com/BCGControlBar(收费,mfc扩展开发包,功能很强大)http://www.bcgsoft.comSkinMagic(收费,看起来像Office)http://appspeed.com/html/download.h原创 2012-07-03 18:18:50 · 1074 阅读 · 1 评论 -
#define new DEBUG_NEW
#define new DEBUG_NEW在用vc时,利用AppWizard会产生如下代码: #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif 对于#define new DEBUG_NEW首先看msdn的解释:Ass转载 2012-07-03 18:14:34 · 409 阅读 · 0 评论 -
MFC 多线程总结
(一) MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外 的用户输入,响应用户及系转载 2012-06-20 11:34:42 · 367 阅读 · 0 评论 -
DLL(Dynamic Link Libraries) 专题
目录引言调用方式MFC中的DLLDLL入口函数关于约定关于DLL的函数模块定义文件(.DEF)DLL程序和调用其输出函数的程序的关系作者引言比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文转载 2012-06-20 11:32:17 · 617 阅读 · 0 评论 -
windows消息机制
一 Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。二 Windows为当前执行的每个Windows程序维护一个「消息队列」。在发生输入事件之后,Windows将事转载 2012-06-07 21:15:20 · 253 阅读 · 0 评论 -
VC精确计算代码执行时间方法
1)在C语言中或者VC中有很多种计算代码执行时间的代码,其中有一种精确计算时间的方法:__int64 Frequency; __int64 startTime = 0; __int64 curTime; double dTime = 0; //QueryPerformanceFrequency返回硬件支持的高精度计数器的频率//返原创 2012-06-07 20:47:45 · 2483 阅读 · 0 评论 -
菜单编程与windows消息分类
首先,在MFC中,具有PopUp属性的菜单是不能用来做命令响应的。在MFC中: 当点击一个菜单项的时候,最先接受到菜单项消息的是CMainFrame框架类,CMainFrame框架类将会把菜单项消息交给它的子窗口View类,由View类首先进行处理;如果View类检测到没对该菜单项消息做响应,则View类把菜单项消息交由文档类Doc类进行处理;如果Doc类转载 2012-06-07 21:22:10 · 550 阅读 · 0 评论 -
秒杀多线程第六篇 经典线程同步 事件Event
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇 一个经典的多线程同步问题》《秒杀多线程第五篇 经典线程同步关键段CS》 上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。首先介绍下如何使用事件。事件Event实际上是个内核对象,它的使用非常方便。下面转载 2012-05-06 23:36:02 · 548 阅读 · 0 评论 -
秒杀多线程第四篇 一个经典的多线程同步问题
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,现在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。 程序描述:主线程启动10个子线程并将表示子线程序号的变量地址作为参数传递给子线程。子线程接收参数 -> sleep(50) -> 全局变量转载 2012-05-06 23:37:57 · 288 阅读 · 0 评论 -
VS2010使用Dll文件搜索顺序
1. 首先,我用VS2010创建了一个Dll工程。编译连接后,便在Debug目录下得到了.lib,.dll文件。 2. 然后,我再创建了一个win32控制台程序,使用这个dll文件,我使用的方式是装载时调用,所以我需要.h,.lib,.dll文件。2.1 我将这3个文件复制到这个程序的目录下,然后在程序中就可以直接使用了。2.2 在运行的过程中,我发现运行时,使用的dl原创 2013-05-24 15:45:59 · 2580 阅读 · 0 评论