VC++常用功能开发汇总

这是一篇关于VC++常用功能开发的汇总文章,涵盖了从Windows核心编程、多线程到网络通信、图片处理等多个方面的实战应用。作者分享了10多年C++开发经验,包括如何使用libcurl发送邮件、利用STL算法提升搜索速度、调用系统API监测进程状态等,并提供了丰富的源码示例。适合C++应用软件开发者阅读和参考。
摘要由CSDN通过智能技术生成

🚀 前言

Alt
本文是《VC++常用功能代码封装》专栏的文章导航贴(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)。

专栏介绍:专栏将10多年C++开发实践中常用的功能,以高质量的代码展现出来,并对相关功能的实现细节进行了详细的说明。这些常用的代码,其质量与稳定性是有保证的,可以直接拿过去使用,可以有效地解决C++软件开发过程中遇到的问题。

专栏适用人群:C++应用软件开发人员。


文章还在持续更新 ing…
 
如果文章对您有用,可以点赞收藏关注,也可以订阅专栏


📢 当前专栏主要分享VC++常用功能代码的,关于C++基础入门与实战进阶的内容,则可以查看对应的专栏:⭐️ C++基础入门与实战进阶点击该链接,跳转到专栏主页,欢迎订阅,持续更新中…)。

专栏介绍:以多年的开发实战为基础,总结并讲解一些的C/C++基础与项目实战进阶内容,以图文并茂的方式对相关知识点进行详细地展开与阐述!专栏涉及了C/C++领域多个方面的内容,包括C++基础及编程要点、C++11新特性(不仅看开源代码会用到,面试也会涉及到)、C++开源库介绍与使用、代码分享(调用系统API、使用开源库)、编程技术(动态库、多线程、多进程、数据库编程及网络编程等)、软件UI编程(Win32/duilib/QT)、C++软件调试技术(排查软件异常的手段与方法、常用软件分析工具使用、实战问题分析案例等)、设计模式、网络基础知识与进阶内容等。

《C++基础入门与实战进阶》专栏是接下来要重点打造的技术专栏,目前专栏文章已经更新到300多篇,还在持续的更新中,也欢迎订阅该专栏


🔰 文章列表

 
⭐️第1篇:《Windows核心编程》若干知识点实战应用分享

功能介绍:《Windows核心编程》若干知识点应用实践分享,希望大家能够仔细研读,在提升理论知识水平的同时,也能有效地提高分析解决问题的技能。

⭐️第2篇:从C++软件调试实战的角度去看多线程编程中的若干细节问题

功能介绍:本文从C++软件调试实战的角度去讲述多线程编程中的若干细节问题,并给出了具体的问题分析实例。

⭐️第3篇:VC++调用libcurl开源库实现发送邮件的功能(附源码)

功能介绍:详细讲述使用libcurl开源库实现邮件发送的相关细节,以及如何开通邮件系统中的SMTP服务。

⭐️第4篇:VC++调用STL算法函数有效提升STL列表的搜索速度(附源码)

功能介绍:介绍使用STL库自带的算法函数去有效提升STL列表的搜索速度,并给出了两个具体的实例。

⭐️第5篇:VC++如何实时监测另一个进程是否已经退出?(附源码)

功能介绍:调用API函数WaitForSingleObject,实时监测目标进程是否已经退出。

⭐️第6篇:VC++通过SetWindowHookEx去实时拦截窗口消息,实现视频会议中桌面共享图像的实时拖动(附源码)

功能介绍:通过SetWindowHookEx去实时拦截窗口消息,实现视频会议中桌面共享图像的实时拖动。

⭐️第7篇:VC++实现会议中阻止屏保、阻止系统自动关闭屏幕、阻止系统待机(附源码)

功能介绍:讲述阻止屏保、阻止系统自动关闭屏幕、阻止系统待机的实现方法,并详细介绍API Monitor软件工具的使用。

⭐️第8篇:VC++通过查看ReactOS开源代码,解决完整路径dll加载失败问题(附源码)

功能介绍:通过参考ReactOS开源操作系统中的源码,解决完整路径的dll库加载失败的问题。

⭐️第9篇:VC++ IM即时通讯软件中的剪切板数据对通的实现细节(附源码)

功能介绍:详细讲述了IM即时通讯软件中的剪切板数据对通的实现细节,重点讲解如何构造HTML_FORMAT和QQ_Unicode_RichEdit_Format两种剪切板数据格式。

⭐️第10篇:VC++ Windows7及以上系统中管理员权限与UAC虚拟化详解(附源码)

功能介绍:本文详细讲述一下Vista及以上Windows系统的管理员权限与UAC虚拟化相关的相关话题,给大家提供一个借鉴与参考。

⭐️第11篇:VC++两万字总结Windows系统中的Layered分层窗口技术(附源码)

功能介绍:讲述如何使用SetLayeredWindowAttributes和UpdateLayeredWindow实现特殊效果的分层窗口。

⭐️第12篇:VC++使用URI Scheme实现从web网页上打开本地C++应用程序(附源码

功能介绍:讲述如何使用URI Scheme技术实现从web页面上启动exe应用程序。

⭐️第13篇:VC++使用开源的zip.cpp和unzip.cpp实现压缩包的创建与解压(附源码)

功能介绍:讲述如何使用开源的zip.cpp和unzip.cpp文件,实现压缩包的创建与解压。

⭐️第14篇:VC++调用gethostbyname实现域名解析(附源码)

功能介绍:详细讲述域名解析的原理与整个流程,并详细讲解调用gethostbyname实现域名解析的方法,以及要注意的一些细节。

⭐️第15篇:VC++使用libqr开源库生成二维码(附源码)

功能介绍:详细介绍使用libqr开源库生成二维码的一般步骤,并给出对应的源码实现。

⭐️第16篇:VC++给软件添加异常捕获模块生成dump文件(附源码)

功能介绍:介绍如何给程序添加异常处理函数,以及如何生成保存异常信息的dump文件。

⭐️第17篇:VC++ socket编程中设置socket选项的ioctlsocket、setsockopt和WSAIoctl函数的使用(附源码)

功能介绍:详细讲解socket编程中设置socket选项的ioctlsocket、setsockopt和WSAIoctl三个函数的使用场景。

⭐️第18篇:VC++中ANSI、UNICODE与UTF-8字符编码之间的转换(附源码)

功能介绍:详解ANSI、UNICODE与UTF-8三种字符编码之间如何相互转换。

⭐️第19篇:VC++实现打开文件和打开所在文件夹的功能(附源码)

功能介绍:详解打开文件和打开所在文件夹两功能的实现细节,并给出实现代码。

⭐️第20篇:VC++图片类型的识别(附源码)

功能介绍:通过读出图片文件最开始的若干个字节中的图片类型信息,来判断图片的类型。

⭐️第21篇:VC++图片类型之间的相互转换(附源码)

功能介绍:使用GDI+实现.jpg、.png、.bmp等常见格式图片间的转换。

⭐️第22篇:VC++ Win32界面编程中的窗口风格要点总结(附源码)

功能介绍:将多种常用的窗口风格的相关要点进行详细的总结,以方便创建窗口时使用。

⭐️第23篇:VC++把程序“消失的”窗口“拽”出来显示(附源码)

功能介绍:使用两种方法将程序中“消失的”窗口“拽”出来显示。

⭐️第24篇:VC++解决win10系统中屏幕截图异常放大的问题(附源码)

功能介绍:解决win10系统非100%显示比例下的截图异常放大问题。

⭐️第25篇:VC++使用GDI+和CImage类加载png图片(附源码)

功能介绍:讲述使用GDI+和CImage类去加载bmp、jpg、png等多种格式图片的方法。

⭐️第26篇:VC++通过修改manifest文件来解决Vista/Win7/Win8下应用程序兼容性问题(附源码)

功能介绍:讲述如何通过manifest文件来解决Vista/Win7/Win8下应用程序兼容性问题。

⭐️第27篇:VC++判断进程是否以管理员权限运行(附源码)

功能介绍:讲述如何通过代码判断进程是否以管理员权限运行。

⭐️第28篇:VC++年月日时间和64位时间的使用及相互转换(附源码)

功能介绍:讲解年月日时间和64位时间的使用,以及它们之间的相互转换。

⭐️第29篇:VC++修改系统服务的启动类型并启动服务(附源码)

功能介绍:讲述如何启动Windows服务、修改服务的启动类型。

⭐️第30篇:VC++从工程的rc资源中将资源文件取出来或读出来(附源码)

功能介绍:详解从VC++工程的rc资源中将zip、xml、png等资源文件读取出来的实现。

⭐️第31篇:VC++检查程序托盘图标是否掩藏到沙漏区域中(附源码)

功能介绍:讲述检测托盘图标是否掩藏到沙漏区域中的方法。

⭐️第32篇:VC++ XP/WIN7系统中删除残留托盘图标的方法(附源码)

功能介绍:讲述如何在XP/WIN7系统中删除残留托盘图标的方法。

⭐️第33篇:VC++判断当前程序对文件或文件夹是否有写权限(附源码)

功能介绍:判断当前程序对某文件或文件夹是否有写权限。

⭐️第34篇:VC++获取Widnows操作系统版本(附源码)

功能介绍:调用NetWkstaGetInfo判断系统是win7、win8还是win10,调用GetNativeSystemInfo判断系统的位数。

⭐️第35篇:VC++ 获取CPU的型号、主频和核数(附源码)

功能介绍:简述如何获取CPU的型号、主频和核数。

⭐️第36篇:VC++ 创建桌面、开始菜单快捷方式(附源码)

功能介绍:详解如何创建桌面及开始菜单快捷方式,以及创建过程中需要注意的细节。

⭐️第37篇:VC++解决Windows快捷方式图标不刷新问题(附源码)

功能介绍:解决Windows系统中桌面快捷方式图标不刷新问题。

⭐️第38篇:VC++托盘图标实现类封装及使用(附源码)

功能介绍:讲述托盘图标实现类的封装,并介绍了该类的使用。

⭐️第39篇:VC++判断目标文件是否被独占(附源码)

功能介绍:判断目标文件是否被独占,提供了相关的封装函数,可以直接拿去使用。

⭐️第40篇:VC++获取系统TCP、UDP端口使用信息,并判断端口是否被占用(附源码)

功能介绍:如何判断端口是否被占用,封装了专用的函数,可直接使用。

⭐️第41篇:VC++获取网卡上的IP、网关及DNS信息,获取最佳路由,遍历路由表中的条目(附源码)

功能介绍:通过代码去获取网卡上的IP、网关及DNS信息,获取最佳路由,遍历路由表中的条目。

⭐️第42篇:VC++计算文件和文件夹的大小(附源码)

功能介绍:讲述如何计算文件和文件夹的大小。

⭐️第43篇:VC++获取文件的修改时间,定期清理若干天之前的日志文件(附源码)

功能介绍:介绍了一种获取文件的最后修改时间的方法,并详述软件中日志文件的管控策略。

⭐️第44篇:VC++ 功能强大的API函数FindFirstFile使用介绍(附源码)

功能介绍:大概地梳理一下使用FindFirstFile可以实现哪些常用的功能。

⭐️第45篇:VC++ 获取窗口的类名和窗口所属进程线程id(附源码)

功能介绍:功能介绍:调用系统API函数去获取窗口的类名,以及窗口所属进程线程id。

⭐️第46篇:VC++删除老版本软件的桌面快捷方式(附源码)

功能介绍:详解删除老版本软件的桌面快捷方式的方法。

⭐️第47篇:VC++检测防火墙是否开启、判断程序是否加入防火墙白名单(附源码)

功能介绍:讲述使用防火墙相关的COM组件,去检测Windows防火墙是否开启、判断程序是否加入Windows防火墙白名单。

⭐️第48篇:VC++屏幕捕获并保存成图片(附源码)

功能介绍:讲述捕获屏幕图像的方法,并保存到图片文件中!

⭐️第49篇:VC++使用fprintf函数实现写日志文件的功能(附源码)

功能介绍:使用C函数fprintf,实现将打印日志写到文件中的功能。

⭐️第50篇:VC++将位图中保存的图像灰化(附源码)

功能介绍:讲述如何将位图中保存的图像进行灰化处理。

⭐️第51篇:VC++如何将rc资源中的图片加载到MFC的CImage对象中(附源码)

功能介绍:详解将rc资源中的图片加载到MFC的CImage对象中的整个过程,并给出相关代码。

⭐️第52篇:VC++调用HtmlHelp打开chm帮助文档(附源码)

功能介绍:讲述在打开.chm帮助文档时应该给API函数HtmlHelp传递什么样的参数,以及需要考虑的一种异常问题。

⭐️第53篇:VC++使用SDL定时器替代Windows窗口定时器消息(附源码)

功能介绍:Windows窗口定时器消息可能会因为UI线程比较忙碌出现被丢弃的问题,可以使用与窗口无关的SDL定时器完成有效定时操作。

⭐️第54篇:VC++对字符串进行加密的MD5String和获取文件MD5值的MD5File函数的封装(附源码)

功能介绍:详解对字符串进行加密的MD5String接口,以及获取文件MD5值的MD5File接口。

⭐️第55篇:VC++实时检测耳机的插入与拔出(附源码)

功能介绍:通过IMMNotificationClient COM接口类的回调去感知音频设备变化,然后去遍历音频设备,获取每个音频设备的KSJACK_DESCRIPTION信息,进而判断出耳机的插入与拔出。

⭐️第56篇:VC++调用PostThreadMessage给线程发消息,实现线程间的通信(附源码)

功能介绍:调用PostThreadMessage给线程发消息,实现线程间的通信,并详细讲解了使用PostThreadMessage时要注意的细节问题。

⭐️第57篇:VC++获取Windows操作系统的语言版本(附源码)

功能介绍:详细讲述GetSystemDefaultLangID、GetUserDefaultLangID、GetSystemDefaultUILanguage和GetUserDefaultUILanguage四个获取语言函数的区别,以及如何通过GetUserDefaultUILanguage获取操作系统的语言版本。

⭐️第58篇:VC++使用GDI+实现HBITMAP与图片文件之间的相互转换(附源码)

功能介绍:使用GDI+实现HBITMAP与图片文件之间的相互转换。

⭐️第59篇:VC++如何通过代码自动弹出Windows系统的一些窗口(附源码)

功能介绍:有时软件中检测到一些问题时,需要打开相关的Windows系统的一些窗口,以供用户查看或者去做设置。本文简单地讲述一下如何弹出一些与软件相关的Windows系统窗口。

⭐️第60篇:VC++详解Base64编解码原理以及Base64编解码接口实现(附源码)

功能介绍:文章系统讲述了Base64编码相关的内容,以及Base64编解码的代码实现。

⭐️第61篇:VC++调用IcmpSendEcho函数实现对远端地址的ping检测(附源码)

功能介绍:调用IcmpSendEcho函数实现对远端地址的ping检测。

⭐️第62篇:VC++如何实时感知Windows系统进入和退出待机状态(附源码)

功能介绍:通过WM_POWERBROADCAST通知消息,实时感知Windows系统进入和退出待机状态。

⭐️第63篇:VC++获取CPU的名称、主频和核数(附源码)

功能介绍:讲述如何去获取CPU的名称、主频及核数(物理核数和逻辑核数)信息。

⭐️第64篇:VC++分别使用WinExec、CreateProcess、ShellExecute和ShellExecuteEx来启动程序(附源码)

功能介绍:本文详细讲述使用调用WinExec、CreateProcess、ShellExecute和ShellExecuteEx多个API函数来实现程序启动的相关细节。

⭐️第65篇:VC++获取电脑的各个磁盘盘符及容量信息(附源码)

功能介绍:本文详细讲述如何调用系统API接口来获取当前电脑上的所有磁盘及容量信息。

⭐️第66篇:VC++一文带你搞懂如何操作文件对话框(附源码)

功能介绍:本文详细讲述一下C++在操作打开文件对话框、保存文件对话框、浏览文件夹对话框时的相关细节。

⭐️第67篇:VC++时间函数的使用(附源码)

功能介绍:本文介绍如何使用时间函数获取相关的时间数据,比如time函数、GetLocalTime函数、GetTickCount函数等。

⭐️第68篇:VC++异常捕获__try…_ecxpt和try…catch的使用介绍(附源码)

功能介绍:本文介绍如何使用异常捕获块__try…_ecxpt和try…catch。

⭐️第69篇:VC++使用zlib压缩及解压数据,使用base64编码及解码数据(附源码)

功能介绍:本文介绍如何使用zlib压缩及解压数据,如何使用base64编码及解码数据。

⭐️第70篇:VC++如何使用C++ STL标准模板库中的算法函数(附源码)

功能介绍:本文讲述如何使用C++ STL标准模板库中的算法函数。

⭐️第71篇:VC++几种加载图片方法的讨论(附源码)

功能介绍:本文将分别讲述使用LoadBitmap、CImage和GDI+ Image类来加载图片的方法,以及使用过程中的一些注意事项。

⭐️第72篇:VC++打开或关闭目标进程的声音(扬声器)(附源码)

功能介绍:本文讲述如何将某个进程的声音(扬声器)打开或关闭掉,这个功能在某些场合下可能会用到。

⭐️第73篇:VC++ 解决dll库动态库加载失败问题(调用LoadLibrary加载失败)(附源码)

功能介绍:本文参考ReactOS开源系统源码中regsvr32的实现,解决dll库动态库加载失败的问题。

⭐️第74篇:WaitForSingleObject 函数的诸多用途与使用场景总结(附源码)

功能介绍:本文详细总结了WaitForSingleObject 函数的诸多用途与使用场景。


📝 最后

《VC++常用功能代码封装》专栏的文章都在这里啦(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)。

文章会持续更新,大家有想要了解的功能点或者话题,可以在评论区告诉我!

喜欢本专栏的文章,可以点赞、订阅支持一下,你的肯定是对我最大的支持!

也可以收藏本文章,收藏后可以快速查看本专栏后续更新的一系列文章!

相关网站 7 设置窗口最大最小 7 设置窗口标题 7 去掉主菜单 7 修改应用程序图标 7 系统只能允许一个程序运行 7 在状态栏中添加时间 8 研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色(整个窗体的控件) 13 改变工程表头栏 13 ◆如何找开一个DiaLog的窗口◆ 13 ◆得到系统中设置的窗口颜色◆ 14 ◆如何让点下去的菜单成为V状态◆ 14 ◆如何调用WINDOWS的颜色板◆ 14 ◆如何产生一个MDI的主窗口◆ 15 ◆如何让一个文本控件显示出值◆ 15 ◆如何让一个控件显示出相应的值◆ 16 ◆在调试中怎么样MESSAGEBOX一个数字◆ 16 ◆如何控制控件的焦点◆ 16 ◆如何对析构函数中对象进行释放◆ 16 ◆如何关闭一个模态窗口◆ 17 ◆如何将一个提示的声音发到声卡上◆ 17 ◆如何得到打开exe的带的参数◆ 17 ◆如何在框架上建立一个工具条◆ 17 ◆如何生成一个主窗口下方的状态条◆ 18 ◆如何让Cscrollview类中控制其可以流动区域大小◆ 19 ◆MFC中控件的一些基本控制方法◆ 19 ◆如何让一个数字型变量化为字符型变量◆ 19 ◆如何使用“拉动条”,“上下选择”◆ 19 ◆如何使用postmessage来异步触发某事件◆ 21 ◆如何使用Sendmessage来异步触发某事件◆ 22 ◆如何修改父类的相关控件属性◆ 22 ◆如何在程序中得到控件的名◆ 22 ◆如何控制菜单的事件程序◆ 22 ◆如何使用控件中的数据录入的控制属性◆ 23 ◆哪些函数是文档、视图相互处理用的◆ 23 ◆如何建立一个基于对话框一程序◆ 23 ◆如何建立一个线程◆ 24 ◆如何让窗口产生一个图标(从应用程序资源中取出)◆ 24 ◆如何得到一个edit的录入的值◆ 24 ◆如何启动TIMER事件◆ 25 ◆如何使用ctrllist控件实现表格◆ 25 ◆如何从INI文件中得到值◆ 25 ◆如何将图标文件写到窗口中◆ 26 ◆如何得到本机的IP地址◆ 26 ◆如何使用全局变量◆ 26 ◆如何让一个字符加上回车、换行◆ 26 ◆如何定义、使用结构◆ 26 ◆如何在任意程序中显示MessageBox◆ 27 ◆如何在程序判断出debug状态◆ 27 ◆当对话框中有一个滚动条是,当滚动滚动条时的消息控制函数◆ 27 ◆将一个CWnd指针转换成一个控件ID(整数)注意用GetDlgItem()函数是从一个控件ID转换成一个CWnd的指针◆ 28 ◆如果在对话框中自定义一个消息的方法,假设对话框名为CXX◆ 28 ◆消息传递◆ 29 ◆在一个函数引用另外的一个对话框◆ 29 ◆全局函数的申明问题◆ 29 ◆在应用程序中*APP.CPP中的InitInstance()的事件◆ 29 ◆给执行文件加一个图标◆ 30 ◆如何在全局函数中通过传入的窗口句柄操作窗口◆ 30 ◆如何使桌面文字背景透明?◆ 30 ◆怎样才能在VC里产生一个唯一的字符串◆ 31 ◆如何隐藏进程(在系统状态栏和进程列表里不可见)◆ 31 ◆如何得到一个确定大小的视?◆ 31 ◆如何实现点击窗口任意地方拖动窗口?◆ 32 ◆如何在启动时阻止MDI应用程序创建一个新文档?◆ 33 ◆如何在多文档MFC程序中制作独立的File|New菜单?◆ 33 ◆如何检测视是否处于分割状态?◆ 34 ◆如何使程序保持极小状态?◆ 34 ◆如何确定当前进程实例是否为唯一实例?◆ 35 ◆如何向一个文档附加多个视?◆ 35 ◆如何获得文件的图标、属性、大小、类型等参数?◆ 36 ◆如何得到鼠标下面的窗口?◆ 37 ◆设置鼠标的形状◆ 38 ◆在对话框中设置编辑EDIT的值◆ 38 1. 如何获取应用程序的实例句柄? 38 2. 如何通过代码获得应用程序主窗口的指针? 38 3. 如何在程序中获得其他程序的图标? 38 4. 如何编程结束应用程序?如何编程控制windows的重新引导? 39 5.怎样加载其他的应用程序? 39 6. 确定应用程序的路径 39 7. 获得各种目录信息 40 8. 如何自定义消息 40 9. 如何改变窗口的图标? 40 10. 如何改变窗口的 缺省风格? 40 11. 如何将窗口居中显示? 41 12. 如何让窗口和 MDI窗口一启动就最大化和最小化? 41 13. 如何使程序保持极小状态? 41 14. 如何限制窗口的 大小? 41 15. 如何使窗口不可见? 41 16. 如何使窗口始终在最前方? 41 17、如何创建一个字回绕的CEditView 42 18、通用控件的显示窗口 42 19、移动
评论 284
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dvlinker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值