- 博客(497)
- 资源 (57)
- 收藏
- 关注

原创 [C/C++]_[初级]_[浅析std::remove函数的原理和用法]
1. 在开发程序的时候,经常需要移除在集合里符合条件的对象,`C++`有没有快捷的方法?2. 字符串里有空格,有没有库能快速删除的?
2024-08-04 19:37:46
451

原创 [并发并行]_[中级]_[C++实现synchronized方式的对象锁2.0]
1. 在前面的文章说过《C++实现synchronized方式的对象锁》可以实现`Java`的`synchronized`易用特性。这个第一版的例子并没有说明如何删除`pthread_mutex_t`对象,随着加锁的对象增加会出现内存泄漏的情况,怎么解决?
2024-01-05 23:35:19
580

原创 [Java]_[中级]_[使用okhttp3和HttpClient代理访问外部网络]
1. `Java`的`http`库常用的有`HttpClient`和`Okhttp3`, 如果公司有限制网络访问,需要代理才可以访问外网,那么如何使用代理`Proxy`?
2023-09-11 22:33:37
1303

原创 [学院]_[我的课程]
C++语言C++11语言特性和标准库C++14语言特性和标准库Java语言JDK7-Java7-JavaSE7新特性和增强功能JDK8-Java8-JavaSE8新特性和增强功能Windows开发使用WTL进行Windows桌面应用开发-1使用WTL进行Windows桌面应用开发-2...
2020-07-10 23:11:00
708
原创 [Windows]_[VS2017]_[如何进行远程调试程序]
1. 在开发`Windows`程序时,有时候在测试机上测试出异常操作的情况,在开发机上就是出现不了。还比如在测试机上能测试到崩溃的情况,在开发机上也是重现不了,怎么办?
2025-04-20 21:15:54
674
原创 [WTL/Win32]_[初级]_[管理员模式运行的界面程序不响应WM_DROPFILES消息]
1. 开发`WTL`时,有时候会需要界面支持拖放文件的操作,这样能更容易选择文件,比如桌面的文件。某次在运行安装包时,安装完软件之后,软件以管理员模式启动后拖放操作不生效,文件可以拖放,但是界面不响应`WM_DROPFILES`消息,怎么回事?
2025-03-09 20:37:53
306
原创 [C/C++11]_[初级]_[哈希Map的STL实现unordered_map简介]
1. `C++`有没有类似的`Java`的类`HashMap`,可以在数据量大的时候查询元素时间复杂度是常量时间的?
2025-03-02 14:12:26
115
原创 [C++11]_[初级]_[多线程条件变量wait_for方法的使用]
1. 在开发多线程程序时,有时候需要启动一个线程来监听外部进程的执行情况,并且在指定时间如果还没运行结束就强制结束外部线程。那么`C++`标准库有这种监听线程并能在超时时提示的方法吗?
2025-01-11 17:54:43
168
原创 [Win32/ATL]_[初级]_[处理WM_PAINT消息注意事项]
1. 在开发`Win32/WTL`程序时,遇到了使用`CFolderDialog`(`atldlgs.h`)打不开目录选择对话框的情况。具体表现是执行了窗口的`DoModal`,却没有窗口弹出来。 可以确定执行操作是在主线程,并不是工作线程。调试时暂停看堆栈,知道到`DoModal`方法里的`SHBrowseForFolder`就会停止,没有继续执行下去。主窗口也是卡住,但是不调用`DoModal`前主窗口不会卡的。偶尔情况下还是能打开`CFolderDialog`的,但是大部分测试都不行。什么情况?
2025-01-01 20:23:37
554
原创 [Win32/WTL]_[初级]_[如何销毁自定义控件]
1. 在开发`Win32/WTL`程序时,有时候需要对创建的控件进行删除再重建。比如用某些按钮表示系统里的磁盘,当插入拔出`U`盘时,需要删除对应按钮,或新建新的按钮表示插入的`U`盘。实现这个按钮我们用的是`CWindowImpl`的子类,有什么要注意的地方吗?
2024-12-28 22:49:02
381
原创 [Gdiplus/Gdi]_[中级]_[实现多行文本的多种颜色绘制-富文本绘制]
1. 在开发`WTL/WIN32`界面程序时,有时候需要绘制多行的段落文本,但是文本里的数值需要设置红色以便能让人第一时间关注到它。这种文本可以称之为富文本。`GDI`的`DrawText`和`GDIPlus`的`DrawString`方法都只能连续绘制某个颜色的文本。怎么实现?
2024-10-27 00:30:52
161
原创 [Cocoa]_[初级]_[绘制文本如何设置断行效果]
1. 在开发`Cocoa`程序时,表格`NSTableView`是经常使用的控件。其基于`View Base`的视图单元格模式就是使用`NSCell`或其子类来控制每个单元格的呈现。当一个单元格里的文字过多时,需要截断超出宽度的文字,怎么实现?
2024-09-30 14:00:14
823
原创 [Cocoa]_[初级]_[使用NSNotificationCenter作为目标观察者实现时需要注意的事项]
1. 在开发`Cocoa`程序时,由于界面是用`Objective-C`写的。无法使用`C++`的目标观察者[1]类。如果是使用第二种方案2[2],那么也需要增加一个代理类。那么有没有更省事的办法?
2024-09-29 17:10:53
1667
原创 [Windows]_[初级]_[GetVersionEx获取系统版本错误的原因]
1. 开发`WTL/ATL/Win32`程序时, 有时候需要获取系统版本号,以便判断用户在使用软件时的系统。在某一天突然发现获取的系统版本号是错的, 一直是版本号`6.2.x`,什么情况?
2024-08-05 21:10:51
600
原创 [WTL/Win32]_[中级]_[MVP架构在实际项目中的应用]
1. 在开发`Windows`和`macOS`的界面软件时,`Windows`用的是`WTL/Win32`技术,而`macOS`用的是`Cocoa`技术。而两种技术的本地语言一个主打是`C++`,另一个却是`Object-c`。界面软件的源码随着项目功能增多而增多,这就会给同步`Windows`和`macOS`的功能造成很大负担。 有大部分的调用底层逻辑,界面数据搜索等代码逻辑会重复写两遍,用`C++`和`Object-C`写。初步估计这部分代码至少占界面代码的`50%`。这无疑会影响产品发布速度,影响软件
2024-06-17 10:53:06
1267
原创 [Cocoa]_[初级]_[macOS的App在深色模式下文字图标显示不正常的解决办法]
1. 升级到`macOS 10.15`后,安装了`xcode 10.1`,运行项目时发现软件界面上的部分文字看不到了,特别是那些标准控件。文字怎么不见了,怎么回事?
2024-06-15 17:17:18
545
原创 [C/C++]_[初级]_[在Windows和macOS平台上导出动态库的一些思考]
1. 最近看了`《COM本质论》`里关于如何设计基于抽象基类作为二进制接口,把编译器和链接器的实现隐藏在这个二进制接口中,从而使用该`DLL`时不需要重新编译。在编译出`C`接口时,发现接口名直接是函数名,比如`BindNativePort`,怎么不是`_BindNativePort`?
2024-05-31 17:23:47
513
原创 [Win32]_[初级]_[获取Windows本机的所有IP地址]
1. 开发`Win32`本地程序时,有时候需要本地启动一个`Socket`服务,监听客户端的访问。而其他机器的客户端访问肯定是需要知道这个机器的`IP`地址才能连接,那么如何获取服务器本机的`IPv4`地址呢?
2024-05-01 13:08:07
581
1
原创 [Gdiplus]_[初级]_[使用Gdiplus实现JPEG和PNG互相转换]
1. 在开发`WTL/Win32`的时候,有时候在处理图片时需要让`JPEG`和`PNG`互相转换,比如截图需要另存为指定格式。那么如何不使用第三方库实现呢?
2024-03-26 21:45:03
195
原创 [WTL/Win32]_[初级]_[如何设置ListView的列宽不出现水平滚动条]
1. 开发`WTL/Win32`的程序时,经常会用到表格控件`CListViewCtrl`。这个控件需要设置列的宽度,当用完`100%`的宽度来平均分配给列宽时,一加载数据多,就会出现垂直滚动条后,水平滚动条也会同时出现的问题。怎么设置才能让水平滚动条不出现?
2024-03-26 17:58:58
780
原创 [C/C++11]_[中级]_[如何编写内存安全的C++代码]
1. `C/C++`不是内存安全,比如指针操作内存时最常见的就是缓存区溢出,数据越界,使用未初始化的内存等。那么借助现代的`C++`新版本新特性能避免吗?
2024-03-13 11:29:25
198
原创 [C/C++11]_[WTL/ATL]_[多线程如何无锁更新进度条界面上的描述字符串]
1. 开发界面程序`WTL/Win32`时,经常会使用进度条来实时显示百分比和描述文字。这些文字一般都用一个成员变量`wstring`来存储,而文字的更新可能比较频繁,比如下载复制文件时,显示正在复制的文件名。可能`500ms`就需要更新一次文字。 绘制是在主线程操作,那么更新和读取得常见做法是工作线程发送消息到需要更新的文本到主线程,之后主线程取出消息并更新文本。这么做的缺陷就是需要发送的消息太多了。有没有更好的办法?
2024-03-06 16:30:18
244
原创 [C/C++]_[初级]_[关于输出double浮点数精度的方法]
1. 在开发`WTL/Win32`程序时,绘制进度百分比,需要指定这个百分比包括小数点不超过`5`个字符,也就是除了小数点之外的数字个数最多只显示`4`个。已知可能出现的数值有`1.1`,`1.1145`,`22.14`... 用什么方式可以获取需要的字符串呢?
2024-03-06 14:32:00
530
原创 [VisualStudioCode]_[VSCODE]_[C/C++开发环境配置-问题解决和补充]
1. 在使用`VSCode`配置`C++`的开发环境时《VisualStudioCode_C/C++开发环境配置》,编译时会发现找不到标准库的`std::mutex`和`std::thread`的声明,而这两个的头文件已经引入,什么情况?
2024-01-07 17:54:24
1591
原创 [vs2017]_[初级]_[常用快捷键*持续更新]
1. `vs系列`不具备`IDEAJ`的`Ctrl+F2`显示当前类的所有方法,有什么替代方法?
2023-11-20 17:53:49
232
原创 [Windows]_[编译构建]_[使用CMake编译C++库注意事项]
1. 在开发本地程序时,`C++`库由于运行时库二进制不兼容的问题,不同版本`VS`编译出来的`C++`动态库是不能兼容的。遇到一个开源库,没有`configure`文件,没有`VS`的解决方案文件,怎么编译?
2023-11-11 11:56:08
255
原创 [Android]_[初级]_[配置gradle的环境变量设置安装位置]
1. 在开发`Android`项目的时候, `gradle`是官方指定的构建工具。不同项目通过`wrapper`指定不同版本的`gradle`。随着项目越来越多,使用的`gradle`版本也增多,导致它以来的各种库也增加,系统盘空间不足,怎么解决?
2023-11-11 11:17:59
1267
原创 [Android]_[初级]_[修改AndroidStudio虚拟设备镜像文件的存放位置]
1. 在使用`Android Studio`的虚拟设备运行`App`时,需要创建很大镜像文件。这些镜像文件一般都在系统盘,导致系统盘占用增大。怎么把这些镜像的存放路径设置在其他盘?
2023-11-06 22:53:55
1176
原创 [批处理]_[初级]_[如何删除变量值里的双引号]
1. 在使用`Visual Studio`开发本地程序的时,需要在项目属性,`生成事件`->`生成后事件`里增加一些资源的打包,复制,删除等操作,那么就需要用到批处理来进行。而传递带空格的路径给外部的批处理文件时就需要双引号引用从而路径能作为一个整体。但是批处理传递参数的时候会把双引号当做值来传给`%1`参数,这就会造成在外部批处理文件里变量出现以下的重复双引号情况。怎么办?
2023-11-05 16:28:56
477
原创 [Java]_[初级]_[使用SAX流的方式写入XML文件]
1. 文件的写入目前没有发现可以增量写入的,只能是完全重新写入。对于大量数据需要写入`XML`文件,还是和读`XML`文件一样,不需要生成`DOM`模型能节省不少的内存和指令。
2023-09-03 18:55:07
483
原创 [Java]_[初级]_[以SAX流的方式高效读取XML大文件]
作为网站的站点地图,提供了固定的格式化数据, 也方便了搜索引擎进行索引。 因此对的读写功能是比较重要的。那么如何实现大数据量的读写才可以节省内存和减少指令的执行?说明和一样,对读用流的方式,可以减少中间的模型的生成,也不需要读取整个文件到内存。这样的不需要借助第三方库,标准库里就有。流式读取使用模型的方式,从开头按起始标签和结束标签的方式进行读取数据。并需要实现自己的来处理需要的元素。这个就是模板类,它的相关方法会在识别到特定的对象是调用,比如属性,起始结束元素,元素值等。例子以
2023-09-03 11:24:17
1073
原创 [Java]_[初级]_[使用fastjson以流的方式读取json大文件]
1. 开发`JSON`应用时,有时候需要从`JSON`文件里读取配置数据到内存。当`JSON`文件足够大时,如果先把文件读入内存再进行`parse`会浪费不必要的大文件连续内存。甚至可能会导致`OOM`, 这时候如果能像`XML`文件那样可以以流的方式读取结构化`JSON`数据,那么会节省很多内存。那么怎么做?
2023-09-02 10:52:13
2419
原创 [Windows]_[初级]_[创建目录和文件的名字注意事项]
# 场景1. 在开发`Windows`程序时,会出现目录生成了,但是函数无法在目录里创建文件,怎么回事?
2023-06-08 14:50:52
764
原创 [ATL/WTL]_[初级]_[如何获取ListView点击的单元格区域]
# 场景1. 在做`Win32/WTL`开发时,`CListViewCtrl`控件是常用的表格控件。有时候自绘`listview`时,需要在单元格上绘制小图标,并且小图标能响应鼠标点击的操作。 那么如何实现判断是否点击了小图标呢?
2023-06-08 14:05:55
843
原创 [JavaWeb]_[中级]_[Tomcat在关闭时报指向Jfinal框架的错误]
1. 在部署`jfinal`程序到`tomcat`的时候,使用`startup.bat`启动网站,之后用`shutdown.bat`关闭网站,发现命令行窗口无法终止退出。报以下错误, 怎么处理?
2023-03-29 23:24:30
1238
原创 [C/C++]_[初级]_[声明和使用字符串常量和字节常量]
我们需要存储常量的字节数组,并且数组里的字节数据可以是任意数值`0-255`。怎么存储?
2023-03-09 23:31:45
485
原创 [C/C++]_[初级]_[关于把字符串string作为字节数组存储的注意点]
在使用string标准字符串的时候,有时候会把它作为动态字节数组来使用。这个string能不能先存储字节数据,再设置它的字节数据大小?
2023-03-09 22:48:49
541
原创 [C++11]_[初级]_[十六进制字符串转换为字节数组]
1. 在开发使用加密算法`md5,sha256等`的功能时, 会生成基于十六进制的字符串密钥。 这时候在使用这些密钥进行解密或加密的时候,第三方库都需要传入一个字节数组`usigned char*`格式的数组,它每个字节的高4位和低4位都分别存储了1个字符值。那么用`C++`如何实现?
2023-03-06 17:14:50
1437
原创 [WTL/ATL]_[初级]_[TreeView控件如何显示ToolTip]
1. 在开发界面程序时,`CTreeViewCtrl`(它实际内部封装的就是`Win32`的`TreeView`控件)一般会用来作为选择某些类型的树形菜单,点击某项的时候,右边能显示某些对应的数据。当这个控件的宽度固定时,有时候每行的文本项可能由于过长从而穿透了整个控件的水平位置, 从而显示效果来看是不好的。这时候希望可以用省略号的样式来省略后边多出的文本,之后鼠标移动到这个文本项时能显示完整的文字,那么这个文本提示,或者说`tooltip`如何实现?
2023-02-13 15:59:33
514
活动分组程序-VBS-第二版
2020-09-20
[系统]_[WIN7和WIN10]_[禁用自动更新批处理脚本]
2020-04-04
WTL-MFC-Win32无边框窗口.zip
2019-06-14
Win32-WTL-MFC自定义表格.zip
2019-06-16
[AsciiDoc]_[项目管理]_[写书写需求文档适合的纯文本工具]
2020-10-16
[Python]_[中级]_[禁用WIN7和WIN10自动更新脚本]
2020-04-05
test-ccombobox.zip
2019-12-29
Windows窗口如何显示GIF动画
2020-05-05
test-WTL10.zip
2019-10-12
test-template-class-export.zip
2021-01-21
infoworld博客备份2.0.1版本
2018-12-03
test-modify-link-text-color.zip
2019-12-29
test-calc-link-size.zip
2019-12-29
test-clipchildren.zip
2019-12-29
[Gdiplus]_[中级]_[绘图实现单行文本的多种颜色]
2020-03-22
[libxml2]_[中级]_[使用xmlReaderForIO读取大文件]
2020-04-14
DispatchAsync使用lambda表达式来简化发送数据到界面线程
2020-04-21
[WTL/ATL]_[C/C++]_[如何给动态创建的按钮绑定处理函数]
2020-05-09
[ATL/WTL]_[初级]_[在ListView指定的单元格显示ToolTip]
2020-11-26
test-gdi-gdiplus-mix.zip
2020-07-31
Windows-VS2017-[如何进行远程调试程序]
2025-04-20
管理员模式运行的界面程序不响应WM_DROPFILES消息
2025-03-12
Win32-ATL-初级-处理WM-PAINT消息注意事项
2025-01-01
Win32/WTL-初级-如何销毁自定义控件对应的项目例子
2024-12-30
Gdiplus-Gdi实现多行文本的多种颜色绘制-富文本绘制
2024-10-27
如何设置ListView的列宽不出现水平滚动条博客内容的项目例子
2024-03-26
ATL/WTL-资源-[如何获取ListView点击的单元格区域]
2023-06-08
WTL-TreeView如何显示ToolTip
2023-02-13
Android如何对服务和Activity进行单元测试
2022-05-04
设置CEdit的文本框背景色和文字颜色
2022-04-15
对Jfinal框架的Controller进行单元测试
2022-04-14
Jfinal框架的Service层进行单元测试项目代码
2022-04-11
自定义TrackBar
2022-03-30
[ATL/WTL]_[初级]_[自定义多列TreeView]
2021-05-16
test-3-9-cedit.zip
2021-04-28
[WTL/ATL]_[初级]_[使用虚拟列表视图来解决新增大量数据卡顿问题]
2021-06-22
test-3-7-listview-userdata.zip
2021-02-25
test-3-6-createwindowex.zip
2021-02-24
test-3-5-export-window-class.zip
2021-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人