自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Qt】超详细!Qt5.9.9和VS2015的配置及使用

【Qt】超详细!Qt5.9.9和VS2015的配置及使用前言Qt5.9.9下载安装步骤配置环境变量(可选)前言最近开始准备使用Qt进行界面开发,所以就在电脑上搭建Qt5.9.9 + VS2015的开发环境。Qt5.9.9下载首先推荐的是官网上进行下载。Qt官网下载:Qt官网下 所有Qt版本.但是目前一来官网下载比较缓慢,二来现在安装都需要在线安装的模式,所以现在推荐几个国内镜像网站进行下载。清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/.北京理工

2020-12-16 11:16:54 20511 15

原创 【VS】Visual Assist 在VS2015下如何设置快捷方式

Visual Assist 如何设置快捷方式

2022-11-29 20:56:53 500 1

原创 【Linux】如何在保存后退出VIM编辑器

如何在保存后退出VIM编辑器

2022-10-24 23:34:26 2176 1

原创 [C/C++] 如何判断文件内容是否带中文标点符号

如何判断文件内容是否带中文标点符号:iswpunct、iswspace、ispunct

2022-07-24 11:26:40 1434

原创 【C/C++】判断路径为目录还是文件,并确定目录下是否存在指定格式(*.*)的文件

判断已知的路径是指向目录还是文件,如果是目录,可以检测出是否存在指定格式(*.*)的文件。

2022-06-22 19:51:16 3255

原创 【Linux】win11 家庭版通过VMware安装Ubuntu 2022虚拟机

win11 家庭版通过VMware安装Ubuntu 2022虚拟机

2022-05-26 19:33:51 7599 2

原创 【Mysql】如何删除百万条以上数据

此处提供2中方法:TRUNCATE TABLE 和存储过程(批量删除),后续有新方法会补充。

2022-05-16 15:17:51 8038 3

原创 【Mysql】 获取表中一段时间范围内的数据

通过DATE_SUB()和DATE_ADD() 实现表中时间范围内的数据检索

2022-04-13 16:20:28 2512

转载 【MFC】Onpaint和OnDraw的区别

1. OnPaint 和 OnDraw  (1)OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。  (2)OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.  (3)当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数通过创建CPaintDC类的DC对象来响应该

2022-04-11 12:00:49 787

原创 【MFC】PostThreadMessage注意事项

PostThreadMessage是一个Windows API函数。其功能是将一个队列消息放入(寄送)到指定的消息队列里,不等待线程处理消息就返回。PostThreadMessage的原型是这样的BOOL PostThreadMessage(DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam);参数idThread其消息将被寄送的线程的线程标识符。如果线程没有消息队列,此函数将失败。当线程第一次调用一个...

2022-04-11 10:09:02 1425

原创 [问题] delete p和delete[] p 区别

目录区别延伸区别简单来说:delete p会调用一次析构函数,而delete[] p会调用每个成员的析构函数。class A {public: ~A() { cout << "A的析构函数" << endl; }};int main() { A* pA = new A[10]; delete[]pA;//输出10次A的析构函数 //delete pA;//会出错,因为只析构了一次 A* pA1 = new A; delete pA1

2022-03-16 14:18:27 1861

转载 C++ 4中强制类型转换符(cast)

目录一、static_cast(静态转换)二、dynamic_cast(动态转换)三、const_cast(常量转换)四、reinterpret_cast(不相关类型的转换)五、扩展备注C++ 既支持 C 风格的类型转换,又有自己风格的类型转换。C 风格的转换格式很简单,但是有不少缺点:转换太过随意,可以在任意类型之间转换。你可以把一个指向 const 对象的指针转换成指向非 const 对象的指针,把一个指向基类对象的指针转换成一个派生类对象的指针,这些转换之间的差距是非常巨大的,但是传统的C语言风

2022-03-07 15:18:22 250

原创 【Qt】Qt5.12.12构建64位QMYSQL数据库驱动

Qt编译MySQL数据库驱动,解决打开数据库是提示 QMYSQL driver not loaded 的问题!

2022-01-26 14:42:13 3281 4

原创 【MYSQL】 正则表达式

空白元字符汇总:元字符 说明 \\t 换页 \\n 换行 \\r 回车 \\t 制表 \\v 纵向制表 字符匹配类汇总:类 说明 [:alnum:] 任意字母和数字([a-zA-Z0-9]) [:alpha:] 任意字符([a-zA-Z]) [:blank:] 空格和指标([\\t]) [:cntrl:] ASCII控制字符(ASCII 0 到31 和 127) [:digit:]

2021-07-01 20:30:41 97

原创 【MFC】 问题:Tab控件内删除首个标签页,剩余的标签页变为空白?(在同一个位置同时ShowWindow(SW_SHOW)两个界面的问题)

问题描述:mfc编程时,重写ctabctrl类。在实现动态增加删除界面功能时,发现当tab控件内有加载入两个tab界面,当删除tab1时,留下的另一个tab2标签页会变空白。现象如下:同时添加“666”和“667”两个tab页,并显示“667”tab页。然后删除“666”这个tab页,“667”这个标签页则会变成空白。重新切换上层页面,或是wnd消息触发,会逐步加载出界面。其实这个问题产生的根本原因是:在同一个位置同时ShowWindow(SW_SHOW)两个界面!因为我是重

2021-05-07 15:54:10 543 2

原创 【MFC】 CFileDialog类 实现文件打开和文件保存(另存为)

目录应用场景CFileDialog类实例文件打开(导入)文件另存为附录dwFlags参数 相关OFN标志位参考链接:应用场景在大多数常用软件中,都会发现“打开”和“另保存”的选项,以“记事本的另存为”为例,其打开对话画框的界面如下:为了实现如上图所示的对话框界面,我们可以通过CFileDialog类来实现。CFileDialog类CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件

2021-04-09 15:51:32 7822 5

转载 【Mysql】创建某个用户只能访问指定的数据库

转载链接: Mysql中使某个用户只能访问指定的数据库.感谢该博主的说明。使用navicat 1)使用root用户新建连接 2)新建MySQL用户 3)点击权限,选择添加权限,出现MySQL中已存在的数据库列表,选择你要为该新建用户开放的数据库,此处选择“test”数据库,选择一些必要的权限信息,确定 4)查看新建用户对数据库的操作权限,如下图 5)很重要的一点,别忘记保存! 6)然后新建连接,输入用户名和密码,打开连接,则新建的那个用户只能看到为他分配的那个数据库 2.命令行实现

2021-01-20 14:50:02 1721

原创 VS2015无法创建C++工程/创建工程失败

问题描述:在安装完VS2015后,在创建c++工程时出现两个问题:问题一:是新建项目的对话框内无任何选项;问题二:点击确定后,又重新弹出新建项目的对话框。问题解决:出现上述问题的根本原因,是在安装VS2015时因为是默认安装,关于Visual c++部分的组件未选择安装/未安装全,导致无任何可创建条目。1. 打开控制面板,选择“程序”,在选择“程序和功能”,找到Microsoft Visual Studio Community 2015(不同的安装包类型,描述会不同:专业版、企.

2020-12-15 22:04:23 5360 1

原创 【Qt】超详细!Qt4.8.6和VS2010的配置及使用

【Qt】超详细!Qt4.8.6和VS2010的配置及使用Qt4.8.6安装安装包下载安装过程安装QT vsaddin 1.11插件VS2010环境配置项目使用本篇主要说明Qt4.8.6的安装方法以及如何在VS2010下使用Qt进行开发的方法,同时也是给自己一个备忘。默认是已经安装VS2010,所以不再此处说明VS2010的安装方法。Qt4.8.6安装安装包下载首先推荐的是官网上进行下载。Qt官网下载:Qt官网下 所有Qt版本.但是目前一来官网下载比较缓慢,二来现在安装都需要在线安装的模式,所以

2020-12-15 21:51:21 5457 4

原创 【MFC】CCriticalSection类在Release编译下调用Lock函数会报0xC0000008错误

【MFC】CCriticalSection类在Release编译下调用Lock函数会报错0xC0000008问题描述方法一 CRITICAL_SECTION代替CCriticalSection方法二 使用WaitForSingleObject和ReleaseMutex()结语问题描述通过以下伪代码方式描述问题:主对话框类内创建成员变量及结构体变量:typedef struct MSG_INFO{ int a; int b; char c[10];}MSGINFO;MSG_INFO m

2020-12-11 15:53:34 397 2

原创 【Postman】Postman模拟服务(mock)使用教程

【Postman】通过Postman的模拟服务(mock)进行Http交互的使用教程步骤一 创建Collection步骤二 添加Mocks步骤三 Add Request步骤四 创建example参考链接步骤一 创建Collection打开Postman之后,点击“new”,就可以开始添加一个新的Collection。在随后弹出来的窗口内点击“Collection”。在圈出来的地方可以输入此Collection的名称。完成创建后,我们可以设置一个 mock server 并且为每一个endpo

2020-10-24 17:04:30 5527

原创 【MFC】CMenu实现菜单栏/工具栏、工具栏前勾选效果、菜单文本动态调整

【MFC】CMenu实现菜单栏/工具栏、工具栏前勾选效果、菜单文本动态调整说明菜单栏/工具栏的创建添加菜单栏/工具栏工具栏前勾选效果菜单文本动态调整其他说明主要介绍该如何加载菜单栏、工具栏,如何改变菜单栏的文字,如何实现菜单栏Checked的勾选效果。菜单栏/工具栏的创建“资源视图”内选择“添加资源”,再在弹出的对话框中选择“Menu”再“新建”,菜单栏创建完毕。之后就可以根据自己的需求,是要建立菜单栏还是工具栏。往下创建设置为菜单栏,往右延伸为工具栏。添加菜单栏/工具栏作为菜单栏:在

2020-10-09 16:53:29 1693

原创 【MFC】 CControlBar如何实现横向/竖向控件条和动态摆放?

【MFC】CControlBar如何实现横向/竖向空间条?前言说明前言在设计对话框时,有时会需要引入工具栏(控件条),那么该如何让我们想要的控件条称为顶边工具栏或者侧边栏,这是我们要讨论的问题。说明类CControlBar是所有控件条类(CStatusBar、CToolBar、CDialogBar、CReBar和COleResizeBar)的基类。控件条一般是一个在框架窗口左边或右边的窗口。它可以包括子项,如基于HWND的控件(生成和响应消息的Windows窗口)和非基于HWND的控件(不是窗口,

2020-09-14 10:52:40 1163

转载 【MFC】socket网络编程示例

【MFC】socket网络编程示例MFC socket网络编程(流程示例)1.TCP流式套接字的编程步骤 在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK!服务器端程序:1、加载套接字库2、创建套接字(socket)。3、将套接字绑定到一个本地地址和端口上(bind)。4、将套接字设为监听模式,准备接收客户请求(listen)。5、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。6、用返回

2020-09-11 11:26:13 817

原创 【MFC】鼠标悬停提示 CToolTipCtrl

【MFC】CToolTipCtrl实现鼠标悬停提示Tip前言代码实现其他方案前言ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl。可以通过该类实现鼠标悬停后的提示tip。代码实现先声明CToolTipCtrl类的变量CToolTipCtrl m_TipMsg;初始化:m_TipMsg.m_hWnd = NULL;//船舶提示框初始化void TipInit(){ if (m_TipMsg.m_hWnd == NULL) { m_TipM

2020-09-10 14:24:25 1966

转载 【MFC】位图CBitmap、BITMAP、HBITMAP之间的转换

【MFC】位图CBitmap、BITMAP、HBITMAP之间的转换 一:理解BITMAP是C++中定义的位图结构体HBITMAP是Windows中使用的位图句柄CBitmap是MFC封装的位图类二:相互转换1、HBITMAP->CBitmap 方法一:HBITMAP hBitmap=(HBITMAP)::LoadImage(NULL, str, IMAGE_BITMAP,

2020-08-27 14:32:10 1983

原创 【MFC】如何画带箭头的直线

【MFC】如何画带箭头的直线前言代码获得箭头坐标前言如何绘制带箭头的直线,说来也简单,只需要算出箭头左右两边的坐标,再使用LineTo()函数即可。话不多说上代码。代码获得箭头坐标已知直线的起点ptStar和终点ptEnd坐标,设定好箭头的夹角和需要的箭头长度,就可以调用下面的函数计算出箭头两边点的坐标。//□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□////描述:获得箭头坐标//参数:// pStar 直线起始点// pEnd 直线终点// an

2020-08-13 15:48:38 1452 2

原创 【C++】DrawText()函数应用

【C++】DrawText函数说明函数原型参数代码示例返回值函数说明该函数在指定的矩形里写入格式化文本,根据指定的方法对文本格式化(扩展的制表符,字符对齐、折行等)。函数原型intDrawText(HDC hdc, LPCTSTR lpString, int nCount, LPRECT lpRect, UINT uFormat);参数hdc:设备环境句柄。lpString:指向将被写入的字符串的指针,如果参数nCount是-1,则字符串必须是以\0结束的。如果uFormat包含DT_MODI

2020-08-13 10:32:41 7768

原创 【MFC】动态加载Picture Control控件中的图片

问题描述在MFC窗体中,我们经常需要根据不同的需求来动态显示Pictrue Control上的图片。并要求图片尺寸自动调整以适应控件尺寸。这里将介绍一种通用的方法。ShowPicture方法在ShowPicture方法中进行图片更新pictureResource为图片资源的IDCStatic mPictureViewer;为图片控件变量void CMyForm::ShowPicture(UINT pictureResource){CBitmap bitmap;//创建CBitmap对象用于存

2020-08-12 18:01:24 2861 3

原创 【WINCE】使用GDI时如何正常释放内存避免内存泄漏

【WINCE】使用GDI时如何释放内存避免内存泄漏前言正文前言最近在做wince平台的上位机开发,因此用到了控件的重绘和图形的绘制,所以使用到了GDI。但是在程序运行的过程中,发现wince6.0的运行内存不断增加,怀疑是GDI使用时,申请的内存未及时释放导致内存泄漏。这是就需要了解如何正确释放申请的内存来避免内存泄漏。正文首先需要清楚的是,无论是CPen还是CBrush等类还是CDC,它们都有自己的申请和释放的对应关系: new -> delete; Malloc ->

2020-07-19 11:25:02 436

原创 【MFC】SetCommMask()和WaitCommEvent()函数实现串口通信的接收

【MFC】串口通信底层函数API前言正文SetCommMask()函数WaitCommEvent()函数前言最近在做wince平台的上位机开发,关于串口通信都是直接调用系统底层的API函数,所以特地研究了一下串口通信的实现方法正文SetCommMask()函数取得 串行端口事件信息,必须先设函数置信息掩码。简单来说,就是过滤条件。SetCommMask()函数原型:BOOL SetCommMask(HANDLE hFile, //标识通信端口的句柄 DWORD

2020-07-03 14:59:36 2635

转载 【MFC】GDI如何释放资源

转载博客链接:https://blog.csdn.net/lin_angle/article/details/6603572对开发中常见的内存泄露,GDI泄露进行检测一、GDI泄露检测方法:在软件测试阶段,可以通过procexp.exe 工具,或是通过任务管理器中选择GDI对象来查看软件GDI的对象是使用情况。注意点:Create出来的GDI对象,都要用DeleteObject来释放;Create出来的DC,都要用DeleteDC来释放,GetDC得出的DC,要用ReleaseDC来释放。以下是一

2020-07-03 14:40:14 1290

原创 【MFC】问题:客户端与服务器建立连接后,拔掉网线的异常重连问题

【MFC】问题:客户端与服务器建立连接后,拔掉客户端网线,客户端无法重连?问题描述分析解决方法参考链接问题描述在项目开发的时候,需要实现异常断线重连的功能。在客户端和服务器端建立连接后,拔掉客户端的网线,客户端这边能够正常返回错误,但是在网络恢复后,执行重连函数却无法再次连接上服务器。分析此处是我一开始执行的流程:在客户端连接成功后,在recv()函数等待接收服务器端发来的消息。若此时拔掉网线,recv()会返回错误,此时会在sleep(3000)后再次调用connec()函数,尝试与服务器连接。当

2020-05-27 18:54:54 1480

原创 【MFC】问题:在定义的结构体中加入CString会报错?

【MFC】问题:在定义的结构体中加入CString会报错?问题描述分析结论问题描述在项目开发的时候,想要在结构体中定义一个CString,用来存放从配置文件中读取的字符串数据。但是一旦执行到该参数读取时,编译器便会弹出报错。//定义的结构体typedef struct READ_INICONFIG{ int nPage; char szFileName[20]; CString strFileProperty;}READINICONFIG;代码举例://定义的结构体REA

2020-05-26 16:24:57 1029

原创 【MFC】如何判断文件路径是否合法

【MFC】MFC如何判断文件路径是否合法前言正文参考链接前言当从配置文件中读取路径时,需要判断文件内的路径名是否合法,如果不加以判断,当你编程的软件在其他电脑上打开后,读取的路径不合法,程序运行就会出问题。正文当从配置文件中读取出路径后,可以调用GetFileAttributes()函数来获取文件的属性,然后通过判断文件的属性是否是“无效属性”,是则认为是不合法路径,不是则认为是合法路径。...

2019-10-24 20:07:52 1656

原创 【MFC】MFC如何对ini配置文件进行读取和写入

【MFC】MFC如何创建文本文档前言前言大家好! 这是我第一次写博客。决定写博客的目的,主要是为了能够帮助自己记录在日常学习和工作中碰到的一些问题对应的解决方法,文章的内容基本都是我自身或者网上实践可行的一些总结,若有些知识点表述有误,欢迎大家指正讨论。...

2019-10-24 14:30:36 1619

Picture Control控件自写类实现动态加载图片功能

自写的MyPictureControl类,主要是为了实现动态加载图片的功能,图片会根据控件大小自适应,但未实现控件根据图片大小自适应。该类的功能比较单一,只是为了提供一个思路,剩下的也可以在该类中进行补充,有需要的可以下载。

2020-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除