摘要: 对于windows来说,所有的线程都是一样的,但MFC却把线程区分为两种:用户界面(UI)线程和工作者线程。用户界面线程具有消息循环而工作者线程没有。UI线程可以创建窗口并给这些窗口发送消息,工作者线程执行后台任务,因其不接受用户直接输入蘑菇不需要窗口和消息循环。 创建UI线程需要首先从CWinTh 阅读全文
posted @ 2016-10-31 17:15 xiaoluo91 阅读(2876) 评论(0) 推荐(0) 编辑
摘要: 模态对话框只能屏蔽来自鼠标、键盘的消息,而不能屏蔽其他消息,也即模态对话框会独占用户输入。其实现原理如下: 其中EnableWindow作用是: Enables or disables mouse and keyboard input to the specified window or contr 阅读全文
posted @ 2016-10-30 23:43 xiaoluo91 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 模态对话框创建: 当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退出,才允许主窗口运行。 模态对话框的关闭顺序: OnClose:按关闭符号X后,响应WM_CLOSE消息 OnKillFocus:窗口即将失去输入焦点,响应WM_KILLFOCUS消息 OnDestroy:窗口即将被销毁 阅读全文
posted @ 2016-10-30 16:50 xiaoluo91 阅读(16141) 评论(0) 推荐(1) 编辑
摘要: X86处理器包含两种类型的浮点数寄存器。第一种使用8个浮点寄存器组成浮点寄存器栈,另一种为向量寄存器(XMM,YMM),它们对于单双精度的处理是不同的。本文将讨论两种模式下的浮点数计算速度问题。 一、当我们编译32位程序时,使用的是x87指令集,即使用浮点寄存器堆栈进行浮点计算。此种情况下,单精度与 阅读全文
posted @ 2016-10-10 11:18 xiaoluo91 阅读(3111) 评论(0) 推荐(3) 编辑
摘要: 作为正式接触汇编的开篇,本文将研究二维数组的遍历问题。在图像处理中,通常需要遍历图像像素(即二维数组)。下面给出三个版本的遍历函数,并研究他们的汇编代码(VC2010编译器,x86版,Release模式)。 (1)在两层循环内每次根据行列索引计算元素位置。 (2)为了避免在内存循环内的乘法计算,可在 阅读全文
posted @ 2016-10-07 23:49 xiaoluo91 阅读(2006) 评论(0) 推荐(0) 编辑
摘要: SSE(Streaming SIMD Extensions)指令是一种SIMD 指令, Intrinsics函数则是对SSE指令的函数封装,利用C语言形式来调用SIMD指令集,大大提高了易读性和可维护。Intrinsics函数的使用可查看手册Intel Intrinsics Guide。 关于本文实现了单精度浮点数组的求和,切实感受SSE带来的速度提升。本文代码主要来自[1]. 阅读全文
posted @ 2016-10-06 14:55 xiaoluo91 阅读(2272) 评论(1) 推荐(0) 编辑
摘要: StretchDIBits速度测试(HALFTONE) 下面实验中显示窗口大小为1024*768,拉伸模式设为HALFTONE. 一、单通道图像 (1) 保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系: 图像大小 耗时(ms) 24*1024 阅读全文
posted @ 2016-08-21 15:39 xiaoluo91 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 下面实验中显示窗口大小为1024*768,缩放模式设为COLORONCOLOR. 一、单通道图像 (1)保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系: 阅读全文
posted @ 2016-08-21 15:21 xiaoluo91 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 一、简介 在工业生产控制系统中,有许多需要定时完成的操作,如数据采集程序。Win32提供了一个基于消息机制的定时器,使用SetTimer函数创建一个内存对象,设定间隔时间,当到达要求的间隔时,计时器对象发送一个WM_TIMER消息,由相应函数处理。但是由于WM_TIMER优先级低,只有等待消息队列中 阅读全文
posted @ 2016-08-18 10:16 xiaoluo91 阅读(1406) 评论(0) 推荐(0) 编辑
摘要: 一个复杂声明中通常包含的类型说明符有()、[]、*三种。其中()用于说明函数类型以及改变说明的先后顺序;[]用于说明数组类型;*则用于说明指针类型。再平常编程中很少会遇到,因此只需要稍作了解。《C专家编程》中有具体的介绍,对复杂声明进行解释只需按照固定的步骤操作即可。下图为书中给出的复杂声明解析过程: 阅读全文
posted @ 2016-08-16 11:31 xiaoluo91 阅读(299) 评论(0) 推荐(0) 编辑