
Windows的精髓
想要了解更多Windows平台下的编程吗?
坤昱
这个作者很懒,什么都没留下…
展开
-
VC++任意格式时间字符串转换为CTime类型以及计算时差
在MFC中使用CTime类获取到时间字符串比较方便、简洁。如果使用不规则时间字符串转换为CTime及相关的类型却不太常见,为此我根据需要动手封装了三个函数(函数一:不规则时间字符串转换为CTime类型,函数二:时间转换为相应字符串(比如1转换为”1天”),函数三:格式化输出时间差字符串)。首先参考一个不规则时间字符串:"2017-01!月-15日,12时,10分-03"下面是函数定义部...原创 2018-03-09 01:10:24 · 3872 阅读 · 0 评论 -
MFC基于多文档框架(对话框内嵌office控件(word文档))
office系列以简便、功能强大的特色发展为当今世界上范围最广、用户最多的办公软件,同时也深受码农的喜欢…。MFC项目中嵌入office系列软件也是随处可见的,最早接触内嵌office软件是在几年前的一个项目,当时用的MFC多文档工程,工程内文字记录这块,如果自己来实现的话,任务量比较繁重,而且不方便维护,好在那时候已经很流行内嵌软件这块技术,所以最后选择使用以安装ocx的形式进行使用word文档...原创 2018-03-07 01:34:44 · 6791 阅读 · 2 评论 -
MFC项目使用Win7自带语音库(包含COM函数返回 “没有注册类”解决方式)
MFC框架下使用Win7自带语音库函数 编写语音朗读的朋友,大概都遇到过 “CoCreateInstance函数返回值 ‘没有注册类’”。针对此问题我搜了好多网址、参考了好多博客,但是并没有解决(甚至思路被带到别的问题上)。后来考虑到应该是安装的系统不是完整版本(根据这个思考,搜索相关的信息果然找到了解决方法),针对这个问题的解决方式: 下载 “win7或xpTTS语音引擎修复原创 2018-01-17 23:15:56 · 4628 阅读 · 0 评论 -
MFC对话框动态刷新图片(仿照全屏屏保)
最近做MFC对话框工程 用到全屏刷新图片的功能,由于功能实现比较简单,便使用CImage类配合定时器制作,下面贴上实现方式:增加消息响应事件://在对话框属性的消息中 添加WM_PAINT与WM_TIMER//消息响应函数原型afx_msg void OnPaint();afx_msg void OnTimer(UINT_PTR nIDEvent);增加初始化函数://在对话框属性的重写中 添原创 2018-01-13 00:51:11 · 2902 阅读 · 0 评论 -
MFC对话框自适应大小(四舍五入)高精度版本
最近写MFC对话框项目需要控件自适应窗口的大小…,使用以前用过的方法经过多次测试发现对话框内的部件”每经过一次拉伸或收缩都会有一定比例的缩小(控件朝左上方向缩小)”; 为了解决这个问题,继续查看代码发现 控件移动后的位置与控件上一次位置的倍数用的float储存,但是用来修改控件位置的SetRect函数传入的POINT结构体成员参数是long类型(小数位被舍去) ; 针对这种情况我们通过计算原创 2018-01-04 00:55:07 · 1129 阅读 · 0 评论 -
CFile用法与实现
编程中使用VC语言读写文件时,我比较喜欢用CFile来做这些工作,简单而强大的功能(一行代码就可以完成读取文件或者写入文件)。CFile采用API函数做函数内核,比如Open函数内部采用CreateFile作为打开文件方法,下面贴上CFile内部函数以及对应调用的API函数:(本例子以CFile file_作为参考对象) 1.Open()函数: file_.Open("C:\\Users\\原创 2017-05-23 23:01:37 · 26739 阅读 · 0 评论 -
Windows动态定义模板类对象
调试MFC线程结构体发现结构体定义的全局对象找不到定义处,跟踪代码找到宏调用处,通过宏调用完成动态定义模板对象。宏定义如下://第一个参数为 类名称//第二个参数为 模板类型//第三个参数为 模板类对象名称#define TestDefineObj(class_name,temp_class,obj_name)\ /*extern*/ class_name##<temp_class>原创 2017-04-24 22:24:36 · 1075 阅读 · 0 评论 -
Windows临界区简单实现
最近看的书中介绍了线程临界区同步方式,思考之前写过的内存释放相关结构便动手实现一个简易的临界区(支持多个线程同时使用)。关于结构设计的几点介绍: 1.设计采用了先进先出概念,当第一个线程进入临界区后,别的线程需要在临界区等待,临界区释放后下一个线程才能进入临界区; 2.设计采用了递增进入方式,比如第一个线程为0顺序,第二个线程为1顺序等等以此类推; 3.设计采用了轻量级参数,结构安原创 2017-04-22 18:10:03 · 1935 阅读 · 0 评论 -
Windows消息映射及消息发送(SendMess、PostMess)实现
最近在看linux系统书籍看到消息调度方面,便动手封装一个类似MFC简易的消息发送框架(参考实例,没有窗口句柄)。关于框架设计的几点介绍: 1.设计采用了自动释放消息节点方式(增加虚析构函数在内部做相关释放判断,即使用完不释放节点也没关系); 2.设计采用了双向链表方式做消息绑定节点(为了方便起见,没有采用环形双向链表); 3.SendMess采用直接调用消息函数方式; 4原创 2020-02-15 12:32:38 · 2278 阅读 · 0 评论 -
Windows高精度微秒级(并发)定时器实现
自从上次封装微秒延时函数后,利用空闲时间试着封装一个微秒定时器(类似MFC定时器形式)使用起来效果还不错。关于定时器的几点介绍: 1.设计采用了自动释放定时器节点方式(增加虚析构函数在内部做相关释放判断,即使用完不释放节点也没关系); 2.设计采用了双向链表方式做定时器节点(为了方便起见,没有采用环形双向链表); 3.增加了第三参数为回调函数(采用MFC风格,如果第三个原创 2020-02-15 12:50:39 · 13174 阅读 · 3 评论 -
VC++访问HTTPS服务器(不受限制)
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-12-29 21:54:40 · 9553 阅读 · 5 评论 -
Windows微秒级定时方法
在做硬件相关的程序时,需要大量的数据传输,当数据发送量大于设备接口接收量时会造成字节bit位覆盖的问题(比如单根串口线每次发送或者接收一个bit如果发送速度大于接收速度会造成前一个bit位被下一个bit位数据覆盖); **C语言本身提供的睡眠或者定时器方法最小单位为毫秒级(据了解最小时间为30毫秒左右,而且不够精准),对于要求高精准的硬件程序通常需要微妙级甚至纳秒级的精度,而C语言提供的方法远原创 2020-02-15 12:30:59 · 7958 阅读 · 5 评论 -
CreateFile系类异步、并行(同一个串口发送接收)
在Windows系统下,串口数据收发CreateFile系类方法对于我来说是最好用的方法,采用异步机制保证了串口读或写入不会使代码停在串口函数内(停在串口函数内原因可能是串口线的原因,或者串口没打开(这个是猜测)),并且可以达到同一个串口既发送并接收(测试方法:串联串口线)。下面说下CreateFile函数串口创建打开、初始化串口以及串口关闭: 函数定义如下:WINBASEAPI__ou原创 2017-04-03 01:55:57 · 6196 阅读 · 0 评论