MFC
秋月的私语
これは何(なん)のものですか?
展开
-
识别剪贴板的内容并且添加磁力头
有时候复制的磁力链接并没有开头,而只有后面的内容,这个时候就必须给磁力链接添加开头下载软件才能识别,如果经常需要这么做比较麻烦,于是我写了一个自动添加磁力头的小软件,运行即可自动添加,减少操作步骤。原创 2024-05-25 08:40:52 · 241 阅读 · 0 评论 -
音视频按照时长分类小工具
即可实现,移动到指定目录,上述代码还实现了同名srt等移动到相同目录,这也是因为用户的需求。应某用户的需求,编写了这款根据音视频时长分类小工具。原创 2024-03-09 13:08:53 · 558 阅读 · 0 评论 -
c++输出简单日志带日期时间功能
最近项目需要简单输出日志,用巨大的日志类未免繁琐,于是写了这个简单的日志函数,带日期,MFC下可以直接使用。原创 2023-12-21 10:58:14 · 647 阅读 · 0 评论 -
c++基于CImage实现图片格式转换完整源代码
最近遇到项目需要,对图片进行格式转换,抱着怎么简单怎么做的想法,于是进行了验证,代码参考自网络,进行了简单的修改。亲测有效,欢迎交流与讨论。我这里提供完整的代码。原创 2023-11-15 17:51:20 · 536 阅读 · 0 评论 -
使用c++解压rar文件,基于UnRAR64,非命令行
最近项目需要解压缩rar文件,我们都知道rar是闭源收费软件,如果直接采用命令行可能会有限制,或者盗版问题,使用正版的winrar命令行解压rar文件是否有限制,这个我没来得及测试,但是从交互体验上来说,命令行对于很多情况的处理也不太友好,比如是否出错,比如异常处理,甚至某些高级功能,比如自定义解压缩的文件名等等,这些在命令行中不太好实现甚至无法实现。原创 2023-11-07 18:11:01 · 870 阅读 · 0 评论 -
LoadLibraryEx调用dll时有未经处理的异常,发生访问冲突
最近做一个测试,使用LoadLibraryEx的方式动态调用dll,可以调用成功,也可以断点调试,但是一旦添加std::wstring类或者其他复杂一点的类,就报错,如上图所示。后来尝试了各种更改选项和设置,都没有结果,于是改用lib的方式调用dll,最终成功,并且发现这个dll其实依赖了很多其他的dll,初期觉得这可能是调用不成功的原因。目前暂用的解决办法就是使用lib方式的调用,问题临时解决,如果你正好也遇到了这个问题,不妨尝试一下用lib的方式调用dll。报错位置,如上图所示。原创 2023-09-28 09:28:38 · 486 阅读 · 0 评论 -
如何再次弹出“无法找到调试信息 或者调试信息不匹配”对话框
最近在调试某dll的时候,因为dll才是包含调试信息的,exe不包含调试信息,弹出该警告对话框,于是勾选了不再显示该窗口。百度无果,后来自己研究了一下,发现可以在这个选项下,勾上勾选,即可再次在必要的时候弹出该警告对话框。然而,后来我又希望能够在需要的时候再次弹出该警告对话框。这个需求比较小众,如果你正好碰到了这个问题,可以参考一下。经过测试,重新弹出对话框。原创 2023-04-28 15:11:24 · 845 阅读 · 0 评论 -
移动目录包含子目录的跨平台c++实现
于是我接着让AI帮忙写一段在Win下将文件删除到回收站的代码,这段代码倒也可以正常运行,但是无奈并没有实现功能,总是删除失败!这个需求的代码其实之前分享过,但是当时主要用在Win下,所以也没有做过多的测试。而且代码写得非常规范,几秒钟出答案,可以吊打一众低端程序员了。下面是我从另外的资料里查到的,亲测有效的将文件和目录删除到回收站的代码。我也看不出来哪里有问题,不过经过对比有效代码,可以猜想是参数问题。合理利用AI的话,还是能节省不少时间的!最近正在玩AI,发现AI写代码还真的是蛮厉害的。原创 2023-03-31 16:20:34 · 168 阅读 · 2 评论 -
获取目录结构输出到文本小工具
最近整理电脑里的资料,因为目录嵌套特别多,需要对目录进行整理注释,但是又希望保持目录结构,输出如下效果的文本,使得目录结构清晰,方便后续的进一步整理说明。于是我撰写了这个小工具,可以获取目录结构,可以选择枚举深度,默认枚举所有目录。小工具暂时没有公开下载,有需要的同学请私信我取得联系,欢迎交流与讨论。这样整理了之后,就可以进一步整理成excel表格了。原创 2023-03-23 11:52:18 · 232 阅读 · 0 评论 -
按照目录结构整理文件到单个目录小工具
有时候有一些文件目录结构非常复杂,但是实际上这样反而导致查看不方便,我们希望这些文件可以整理到一个目录,但是又希望能够记得这些文件原来是在哪个目录的,于是我写了这款小工具,可以实现文件整理,并且支持目录结构恢复,这样就算万一操作错误了也没问题。软件成品暂未公开,但关键源代码已经提供了,可以参考一下,自行实现功能即可。想要全套源代码的,也可以私信我取得联系,一起学习交流。其中文件名保持了目录结构,并且也保留了自身的名称。如果仅仅需要软件成品的,可以私信我取得联系。原创 2023-03-02 10:49:50 · 225 阅读 · 0 评论 -
c++实现移动文件和目录带恢复功能
,最近正好又需要这样的功能,而且还增加了一个需求,希望能够记录移动的具体内容,并且能够根据记录实现恢复功能,这个实现起来没什么难度,唯一需要注意的是,记录需要加锁,并且考虑到程序崩溃等问题,需要将每次成功或者失败记录即时写入文件,而不能在程序结束时写入,否则程序一旦崩溃,所有的移动记录将丢失。于是我写了一个类,实现了文件和目录的移动,纯c++实现,可以记录移动过程,也有恢复功能呢,可以指定记录的文件名,默认为"restore.log"。注意,部分函数需要另外实现,实现起来也不难,欢迎交流与讨论。原创 2023-02-24 15:24:40 · 851 阅读 · 0 评论 -
两道关于虚函数的c++面试题
这样,在有虚函数的类的实例中这个表被分配在了 这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际所应该调用的函数。通过这个示例,我们可以看到,我们可以通过强行把&b转成int*,取得虚函数表的地址,然后,再次取址就可以得到第一个虚函数的地址了,也就是Base::f(),这在上面的程序中得到了验证(把int* 强制转成了函数指针)。=====================我是华丽的分割线==================原创 2023-02-08 09:33:00 · 677 阅读 · 0 评论 -
批量双层压缩小工具7z格式增强版
之前写过一款《批量双重压缩小工具7z格式优化版》,很多网友表示这款工具很实用,于是我这次给这款软件进一步增强了其功能。软件成品暂未公开,但关键源代码已经提供了,可以参考一下,自行实现功能即可。1.现在不仅可以支持目录的双层压缩,同时也支持了文件的双层压缩。2.不仅支持双层压缩,还支持了单层压缩,去掉第二层的勾选即可。软件的使用方法跟之前没有区别,拖拽文件或者目录到列表即可。想要全套源代码的,也可以私信我取得联系,一起学习交流。如果仅仅需要软件成品的,可以私信我取得联系。生成的文件即可实现加密压缩功能。原创 2023-02-06 12:02:32 · 2904 阅读 · 1 评论 -
批量双重压缩小工具7z格式优化版
于是,按照某站长的需求,我撰写了一个双层压缩的软件,在一定程度上可以缓解和谐问题,尤其是对于站长之类的,这款软件还是有一定意义的,实际上这款软件之前也发布过关键源代码,这里再次分享一下关键源代码,这次的代码稍微有所优化,主要是考虑到了,双层压缩的时候,实际上第二层压缩已经没有必要使用极限压缩了,而采用存储(-mx9)的方式,这样可以大幅度减少等待时间。软件成品暂未公开,源代码已经提供了,可以参考一下,自行实现功能即可,如果需要软件成品的,可以私信我取得联系。原创 2023-01-06 15:01:51 · 816 阅读 · 0 评论 -
重复命令小工具附带关键源代码
最近需要测试一个小程序的稳定性,具体表现为该程序单次运行没问题,但是运行几千次之后会报错,因为调用此程序的项目程序较大,不方便测试,于是专门写了一个小程序,用于反复执行exe,测试其稳定性。基本的【命令】,支持 exe,bat等可执行文件拖拽,【参数】可选,【环境】为需要添加的环境变量,【次数】为需要执行的次数。关键代码如下:欢迎交流与讨论。原创 2022-12-06 14:37:12 · 305 阅读 · 0 评论 -
MFC初始化时调整对话框窗口大小和位置
【代码】MFC初始化时调整对话框窗口大小和位置。原创 2022-10-31 13:34:25 · 2726 阅读 · 0 评论 -
如何获取Ribbon中某个Edit控件的值
如图所示的Edit空间,索引依次为1,1,4以及1,1,5,于是得到代码。使用MFC中的Ribbon界面时,有时候需要获取某个Edit中的值。注意获取的先后顺序,如下图所示,我们按照123的顺序依次获取。注意,其中1的索引是从1开始的 ,而其他的索引是从0开始的。这个函数可以放到MainFrame.cpp中实现。下面是声明位置,供参考。原创 2022-10-28 15:31:28 · 406 阅读 · 0 评论 -
基于MFC和GDAL的遥感影像显示
显示遥感影像在业界做得比较好的的有ENVI,Erdas,以及ArcGIS软件,如果想进行二次开发,其实QGis也是很不错的选择,但是QGis比较庞大,于是我想着,要是能用简单的框架,比如MFC实现一套遥感影像显示该多好啊,然而这说起来容易做起来难。》,他的效果其实也很不错,但是作者并没有公开源代码,联系也无果,想来也非常理解,毕竟是自己辛勤付出的劳动成果,岂能说开源就开源呢,开源虽然很好,但是不开源也是没问题的。于是,我只好自己想办法,先说下,以下影像内容来自Google,并不涉及任何秘密内容,另外。原创 2022-10-28 12:11:45 · 729 阅读 · 3 评论 -
VS2019 对COM组件的调用返回了错误HRESULT E_FAIL
网上可以随意搜索到解决办法,但是每次操作起来比较麻烦,于是整理了一个批处理。安装vs2019结束后,直接打开工程,报这个错误。命名为“fixHResultEFail.bat”关闭窗口,重启vs2019,问题解决。(vs2019开发人员命令提示符)原创 2022-09-22 14:38:36 · 758 阅读 · 2 评论 -
获取当前进程的父进程并且结束父进程
最近碰到一个需求,需要结束当前进程的父进程id并且结束父进程,经过搜索,结合网上共享的代码,得到了解决方案。特此分享代码,初步测试成功。原创 2022-09-05 15:15:50 · 906 阅读 · 0 评论 -
批量双重加密压缩小工具7z格式
最近,根据某读者的需求,定制了这款小工具,如题,实现用7z格式,双重加密批量压缩,使用多线程压缩成7z格式,双重压缩的好处是在一定程度上避免被和谐,但是手工操作比较麻烦,而这个小工具,可以实现解放双手,批量自动双重加密压缩。软件界面如图所示(可定制):关键代码:压缩动画如下图,只测试了一个目录:压缩结果如下,改了后缀之后,打开会发现里面还有一层加密压缩。欢迎交流与讨论。...原创 2022-07-28 11:13:00 · 1355 阅读 · 6 评论 -
登录VS2019社区版显示空白怎么办
最近打算登录VS2019社区版,输入账号的页面显示正常,但是一到登录画面,界面就显示空白,无法登录。然后,我记得之前有个选项,可以设置系统浏览器登录,于是灵机一动,这应该是能解决问题了! 于是,点击登录,自动跳转到系统浏览器,登录成功之后,显示如下:接着,查看VS2019,已经显示授权工程了。 如果你正好也遇到了这个问题,可以试试看。...原创 2022-07-12 09:29:29 · 615 阅读 · 0 评论 -
无法启动vs2017远程调试器(msvsmon.exe)
这里我给出VS2017的MSVSMON.EXE文件的备份,包含整个Remote Debugger目录,给需要的同学。原创 2022-06-21 11:18:04 · 2602 阅读 · 0 评论 -
opencv函数测试对话框
opencv249测试代码对话框,用于测试opencv函数功能等。原创 2022-06-16 10:36:54 · 484 阅读 · 0 评论 -
Qt基于QLibrary调用MFC生成的dll范例
直接上源代码://author:autumoon//联系QQ:4589968//日期:2022-02-28#ifndef HEARTBEATDLL_H#define HEARTBEATDLL_Hint HeartBeatDll(const char* szIp, const int& nPort, int* nCpuUsage, int* nMemUsage);#endif // HEARTBEATDLL_H实现文件://author:autumoon//联系Q原创 2022-02-28 15:57:59 · 489 阅读 · 0 评论 -
VS2015完整编译x64版本GDAL+PROJ+GEOS并测试各模块
之前写了不少关于GDAL编译的文章,但是没有一次是完整记录的,主要是因为可参考的文章很多,但是想来想去,还是整理一份完整的文章吧,本文将详细介绍使用VS2015完整编译x64版本GDAL+PROJ+GEOS并测试各模块,附上完整的测试代码,供需要的人参考。首先是源代码,去官网下载,也可以直接下载我已经整理好的代码,官方源码,没有任何修改,压缩包的名字都没有改过。gdal244_vs2015.rar - 蓝奏云文件大小:19.5 M|https://autumoon.lanzouq.com/iYMek原创 2022-01-13 15:09:16 · 898 阅读 · 0 评论 -
用VS2010&VS2015编译同一套源码生成x64版的GDAL
之前写过一篇文章《VS2010&VS2015编译x64版本GDAL+PROJ+GEOS》,当时使用了不同的源码分别编译两个版本的GDAL,而这次项目需求是,同一套源码分别用VS2010&VS2015编译x64版的GDAL。于是进行尝试,发现gdal2.4.4版本并不支持VS2010编译,提示编译器版本太低,无法支持C++11,于是只能尝试用VS2015编译之前已经用VS2010编译过的GDAL的源码,源码内容如下:不过这次使用VS2015编译,其中geos和proj都能顺利编译通原创 2022-01-13 13:50:21 · 344 阅读 · 0 评论 -
选取指定类型的文件并保持目录结构
最近有个需求,想选取文件夹中某种类型的文件,并且保持目录结构,一时竟然没想到好的办法,如果不需要保持目录结构,倒是可以直接使用Windows自带的搜索,但是我希望保持目录结构。于是只好自己动手,写了这样一款小工具CopyDefFiles.exe。配置文件指定需要选取的类型,因为小工具只是拷贝指定类型的文件到目标目录,不删除任何文件,所以很安全,可以放心使用。主要源代码://author:autumoon//联系QQ:4589968//日期:2022-01-07 /***原创 2022-01-07 11:12:47 · 391 阅读 · 0 评论 -
Failed to create a timer (当前程序已使用了 Window 管理器对象
最近使用MFC调用Qt编写的带界面的dll,发现使用qtwinmigrate之后,非常容易出现各种错误,比如程序仍然不能正常退出等,尤其是释放和句柄类型的错误,对于代码的严谨程度提高了很多,这些是在单独写Qt程序的时候没有遇见的。比如这次遇到了这个错误,使用了数个QTimer之后,当MFC主程序退出时,出现:进而而导致MFC程序无法正常退出。在尝试了各种替代QTimer的方案之后,最终选择了使用QThread::sleep()函数代替某个大量重复调用的QTimer::singleShot(.原创 2021-12-14 10:56:46 · 2281 阅读 · 0 评论 -
使用qtwinmigrate解决MFC调用QT的dll无法正常退出的问题
之前写了一篇《MFC调用Qt使用MinGW编译的带界面的dll解答》,这一篇本来打算写如何隔离Qt的依赖dll到单独目录,但是有个更重要的问题需要解决,那就是如果使用那篇文章中的方法调用Qt的dll,会发现程序无法正常退出——即关闭了QT界面之后,无法正确FreeLibrary,MFC程序也无法正常退出(除非强行结束进程)。那么这个问题该如何解决呢,其实已经有很成熟的开源库qtwinmigrate给出了解决方案,目前测试Qt5.0可用,该库的下载地址为:GitHub - qtproject/qt-sol原创 2021-12-10 10:20:55 · 1633 阅读 · 0 评论 -
MFC调用Qt使用MinGW编译的带界面的dll解答
上一篇《MFC调用Qt使用MinGW编译的带界面的dll》中提出了需求,那么我们该如何解决这个问题呢?首先,我们对导出函数进行声明,如前面的文章所述,需要使用extern "C"的形式导出://author:autumoon//联系QQ:4589968//日期:2021-12-08#ifndef EXTERNCINTERFACE_H#define EXTERNCINTERFACE_Hextern "C"{__declspec(dllexport) bool WD_Initial原创 2021-12-08 10:21:32 · 792 阅读 · 0 评论 -
MFC调用Qt使用MinGW编译的带界面的dll出题
上上篇文章《MFC调用Qt下使用MinGW编译的dll》提到了MFC如何调用Qt的dll,但是因为没有界面,比较简单。为了能成功调用带界面的Dll,我们首先要创建带界面的Qt的Dll,具体方法我在上篇文章《如何使用QtCreator新建带界面的dll工程》详细说明了,按照步骤即可创建带界面的Qt编译的Dll工程,如下图所示。正确编译工程(使用64位MinGW的Releae版本编译),会得到如下文件:其Dll中包含的Qt界面如下图:点击确认和取消按钮,都会在上面的控件中输出响应的消息.原创 2021-12-07 14:48:11 · 825 阅读 · 0 评论 -
如何使用QtCreator新建带界面的dll工程
与QtCreator中新建普通dll工程,稍微有些区别,重要步骤已经截图并且标红。其他步骤采取默认设置即可。按照上述步骤,即可完成此工程。界面部分,则和普通的QWidget工程一样,按照需要进行编辑。完整代码:QWindowDll.rar - 蓝奏云文件大小:2.1 K|https://autumoon.lanzoux.com/iC6icxcgrgj...原创 2021-12-07 14:20:15 · 537 阅读 · 0 评论 -
MFC调用Qt使用MinGW编译的dll
最近因为项目需要,MFC调用Qt下使用MinGW编译的dll,从开始的调用基础函数,到后面调用Qt界面,到隔离Qt发布所需的dll到单独的目录,遇到了各种各样的问题,好在最终都顺利解决了,于是打算写一个专题讲述这个问题,由浅入深,特此分享,所有的工程都会完整提供,也是作为纪念,防止将来忘记了(虽然有代码备忘就是了)。首先,先从最基础,最简单的入手。第一步,创建Qt编译dll的工程,除了图中的选项选择c++ Library其他一路默认,生成一个名为EasyDll的工程。其中头文件和..原创 2021-12-07 10:52:10 · 1453 阅读 · 2 评论 -
使用GDAL创建影像小工具
上一篇文章《GDAL随机读写影像速度测试》提到了GDAL读写性能,为了配合性能测试,有时候我们需要生成各种各样的影像,比如大小超过100GB的tif或者img等等,要求生成速度快(尽量占用内存等),内容可能也有一定要求,于是有了这个小工具。下载地址:https://autumoon.lanzoui.com/iNB4Iwrhr3ghttps://autumoon.lanzoui.com/iNB4Iwrhr3g另外,此工具同时包含性能测试,将待测试的影像拖动到ListControl控件,点击确.原创 2021-11-22 10:26:28 · 441 阅读 · 5 评论 -
GDAL随机读写影像速度测试
最近项目需要,有一个测试GDAL随机读写影像速度的需求,虽然看磁盘IO就可以得到读写速度,但是有时候磁盘IO并不能代表真正影像的读写速度,因为读取的影像可能不是需要的目标影像,这时就需要对GDAL进行随机读写速度测试。一开始,我直接使用随机数得到一个15000*15000的范围进行读写,结果发现读写速度飞快,远超磁盘IO,调试了一下,发现读写区域有重叠,而GDAL对于同样区域的读写有优化,所以出现读写速度飞快的问题,那么这自然不是我想看到的测试结果,于是加上了区域排除代码,使得每次读取的区域都不重叠,最原创 2021-11-15 09:44:34 · 509 阅读 · 0 评论 -
VS2010&VS2015编译x64版本GDAL+PROJ+GEOS
因为GDAL+PROJ+GEOS有版本兼容的问题,所以尝试了一些组合,下面直接共享出尝试成功的组合,压缩包中包含本次编译需要的全部文件,包括cmake安装文件:GDALBuild.rar - 蓝奏云文件大小:62.3 M|https://autumoon.lanzoui.com/itEbwwik5kf其中编译的gdal版本分别为gdal224和gdal244,gdal3.0版本因为有sqlite3的加入,编译方法改变较大,因此暂时使用了gdal3.0之前的版本:1.源码下载地址:==..原创 2021-11-15 09:26:21 · 436 阅读 · 0 评论 -
非常简单的基于MFC的提示小工具
本质就是一个对话框,只不过可以自定义提示内容和图片而已,这个小工具是我当年防止别人失误关掉我的电脑而写的,主要内容为熟悉了Windows下读写ini文件的一种方式。界面如下:根据配置文件内容可以修改信息显示方式:主要代码://author:autumoon//联系QQ:4589968//日期:2021-09-27// AlertMFCDlg.cpp : implementation file//#include "stdafx.h"#include "AlertM原创 2021-09-27 14:24:12 · 225 阅读 · 0 评论 -
基于MFC实现的快速输入文本小工具
有时候需要重复输入大量文字,反复Ctrl+C反复Ctrl+V 还是很浪费时间,于是我自己写了这个小工具,运用Ctrl+数字实现十个文本的快速输入。只要是能使用Ctrl+V的地方,本工具都可以正常使用。界面如图:使用方法也非常简单,启动软件,直接在需要输入文本的地方按快捷键即可。如果需要修改文本,则双击修改。支持时间格式转换,在需要插入时间的地方输入“【时间格式:%Y年%m-%d %H:%M:%S】”即可,其中至少有一个%号,其他内容根据需要任意修改,比如:【时间格式:%Y年%m.原创 2021-09-17 10:01:01 · 365 阅读 · 0 评论 -
MFC中RichEdit光标移动到文件末尾
先直接上答案://author:autumoon//联系QQ:4589968//日期:2021-09-16 //光标移动到末尾 GetDlgItem(IDC_RICHEDIT_CONTENT)->SendMessage(EM_SETSEL,0,-1);//从开始到文本末尾 GetDlgItem(IDC_RICHEDIT_CONTENT)->SendMessage(WM_KEYDOWN,VK_END,0);效果如图,初始化文本后光标自动移动到结尾:再来感叹一下:.原创 2021-09-16 11:29:25 · 859 阅读 · 0 评论