
Windows编程
文章平均质量分 88
-飞鹤-
喜欢音乐,喜欢文学,喜欢跑步,喜欢编程!
展开
-
MSVC++远程调试
MSVC++的调试功能非常强大,可以下断点,单步调试,查看堆栈变量信息等。实际用于生产的电脑环境复杂,更容易发生Bug。生产电脑,由于各种原因有些可能无法安装MSVC用来现场调试。基于打印日志,查看日志的方式来分析,一些简单的问题可以解决,但是一些复杂的问题,尤其是语法问题,还是在线调试更方便。针对上述情形,跨电脑的远程调试就出现了,完美解决上述问题。远程调试,一台生产电脑,一台开发电脑,共同接入一个局域网。开发电脑远程连接生产电脑,然后就像调试本地程序一样调试运行于生产电脑上的程序。原创 2024-02-01 16:03:04 · 1047 阅读 · 1 评论 -
Windows消息队列及C++应用
Windows是一个消息驱动的操作系统,消息是用一个常量标识符来标记,并且有两个32Bit的消息附加信息。单击鼠标、敲击键盘,都会通过电脑外设向系统发送特定的中断信号,这个中断信息在操作系统中会转化为一个消息,并存储在系统的一个消息队列中。Windows操作系统会根据当前激活的窗口与鼠标、键盘的操作来决定将消息发给相应的窗口线程。针对非UI线程,可以通过PostThreadMessage来传消息,但是耦合性高。更方便的方式是通过Hook来直接获取指定窗口的消息。原创 2022-10-04 22:54:48 · 2768 阅读 · 0 评论 -
基于MFC的MVC框架的编程实践
Windows桌面应用的开发,C++语言依然占据着主流。用C++开发桌面应用,面临UI框架的选择,主流的C++ UI框架有MFC,DUI,Qt,cef。它们各有各的优势。MFC,制作简单的UI非常容易,因为MFC并不完全开源,所以想深度美化MFC UI,难度非常大,多用于一些对UI效果要求不高的工业控制软件。DUI(Direct UI),即直接绘制的UI,所有的控制部件都是通过GDI/GDI+绘制的,因为其开源,如果想自定义一些控件,也会更容易一点。...原创 2022-08-12 14:37:44 · 1887 阅读 · 0 评论 -
基于.NET的托管C++开发
1. 简介随着Windows的发展,基于.Net的功能越来越多,使用也越来越方便。早期的.Net主要是C#和VB.NET进行开发。Windows希望几种主要的语言都能够统一,大家互相调用。Windows提供了CLR(Common Language Runtime),来统一各语言编译后的标准。另外还提供了.Net库,包括非常多的相关.Dll,提供功能API供调用。2. 托管C++基本语法托管,意味着内存的申请释放都统一交给CLR来处理。所以托管C++扩展了标准C++,提供了托管类。.NET中,所有类型都原创 2022-05-20 12:02:57 · 2090 阅读 · 0 评论 -
C/C++开发之Windows资源释放管理
Windows的资源是有限的,用完就应该释放,否则资源用完之后,会导致资源申请的异常,导致程序运行异常。很多开发语言是基于一个"虚拟机"框架,框架会帮助语言完成相应资源的申请及释放。但是很多开发语言是直接生成可执行文件,这种开发语言的资源申请及释放必须自行完成,如C/C++等。常见的资源申请及释放有:1. 内存(Memory)此处的内存主要是指应用程序可以使用的堆内存。1.1. 常见情形● malloc之后调用free。● new之后调用delete。● new[]之后调用delete[]。原创 2021-11-17 14:19:12 · 1223 阅读 · 0 评论 -
Windows下C++三种方法获取文件缩略图并保存为图片
1. 简介在Windows文件夹中,不需要打开文件,即可以通过大图标、平铺等方面查看到不同文件的缩略图。2. 方法一缩略图信息文件夹的,在文件夹中显示。所以Windows提供了文件夹相关组件来获取缩略图信息。因为IShellFolder组件的方法只能用宽字符,所以接口需要使用宽字符符。此方法兼容XP系统及之后的操作系统。HBITMAP GetThumbnail(const std::wstring& _strFilePath){ std::wstring strDir; std::w原创 2020-12-22 21:20:12 · 5575 阅读 · 0 评论 -
关于文件系统重定位导致的调用命令行失败
1. 问题现象环境Windows 10专业版,64位操作系统,基于x64的处理器。在命令行窗口中查询当前用户,正常显示。在32Bit应用调用相应的命令行Python代码:cmd = r"cmd /c query user"os.system(cmd)结果:2. 分析问题定位query模块通过everything来搜索query,结果如下图:区分System32目录中存放的是32Bit版本,后面存放的是64Bit版本吗?不是这样的。3. Windows系统简介Win原创 2020-11-14 16:51:33 · 452 阅读 · 0 评论