自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (2)
  • 收藏
  • 关注

原创 方德系统安装Windows双系统

在已安装方德系统的电脑上通过VentoyU盘安装Windows,需先用GPartedLiveCD划拨空白分区,避免误操作方德系统分区。安装Windows后,因GRUB默认关闭os-prober,需修改/etc/default/grub添加GRUB_DISABLE_OS_PROBER=false并更新配置,使GRUB识别WindowsBootManager。通过调整GRUB_DEFAULT可设置Windows为默认启动项,最后执行update-grub生效。参考博客[1]完成双系统配置。

2026-09-24 17:57:28 223

原创 PyTorch给训练好的分类模型添加Softmax函数

内容讲PyTorch中CrossEntropyLoss已含Softmax,模型输出为logits;推理时若需输出概率则需自行添加Softmax。摘要需概括核心和三种方法。在PyTorch分类模型中,CrossEntropyLoss内已含Softmax,因此模型输出为logits,推理时需自行转换概率。方法有三:用nn.Sequential封装Softmax;在模型forward中加F.softmax;或用nn.Sequential封装Softmax;在模型forward中加F.softmax

2026-09-08 09:20:41 246

原创 PyTorch模型保存与加载

本文总结了PyTorch模型保存与加载的要点:推荐仅保存参数(state_dict)以保兼容;保存整个模型不推荐;断点续训需保存优化器等检查点;跨设备加载需指定map_location。还指出多GPU模型需去除module前缀,推理前务必调用model.eval()以确保结果稳定。

2026-09-03 10:45:11 213

原创 Git克隆仓库时遇到fatal: protocol ‘http‘ is not supported问题解决方法

Git Bash中粘贴Git仓库地址报错"fatal:protocol 'http' is not supported"的解决方案 问题分析: 在Git Bash中使用Ctrl+V粘贴http地址时,实际插入了隐藏字符'^?' 错误提示"协议http不被支持"实际上是"协议^?http不被支持" 本质问题是隐藏字符导致协议识别错误 解决方法: 避免使用Ctrl+V粘贴 改用右键菜单选择Paste 或使用Shift+Insert快捷键粘贴 这样可确保

2026-06-04 14:52:29 371

原创 ST Edge AI Core支持的神经网络算子查看方法

STEdgeAI算子列表查看指南: 定位STEdgeAI安装目录 进入子路径:.\STEdgeAI\4.0\Documentation\ 打开index.html文件 在文档中可查阅STEdgeAICore支持的具体算子信息 (注:该摘要46字,简明扼要地说明了查看STEdgeAI算子列表的操作步骤,符合字数要求且保留了核心信息)

2026-06-02 17:11:32 57

原创 Python pandas截取DataFrame任意区间数据

摘要:本文介绍了一个使用Pandas的iloc函数截取DataFrame数据的实用方法。通过封装slice_dataframe函数,可以灵活地截取指定区间的数据:当提供end参数时采用[start:end]左闭右开区间,不提供end时则截取到末尾(包含最后一行)。示例演示了从索引2到5(不含5)和从索引7到末尾的两种截取方式,验证了函数的正确性。该函数封装了iloc的切片逻辑,简化了DataFrame数据截取操作。

2026-05-06 21:48:18 78

原创 Python终端彩色打印包colorma使用方法

本文介绍了Python的colorma库使用方法。首先需导入并初始化colorma,推荐设置autoreset=True防止颜色污染后续文本。该库提供Fore设置前景色(文字颜色)、Back设置背景色、Style控制文本样式。基本用法是在打印文本前添加颜色代码,支持字符串拼接和f-string两种格式。文章展示了如何单独或组合使用颜色和样式,并提供了遍历显示所有可用颜色和样式的示例代码。特别说明Style样式效果不明显,不推荐使用。

2026-04-13 11:31:21 224

原创 VSCode C/C++函数Ctrl+鼠标点击无法跳转的解决方法

如何解决VSCode中IntelliSense引擎禁用问题:进入设置(Ctrl+,),搜索"C_Cpp.intelliSenseEngine",将其值改为"default"(推荐)或"TagParser"(轻量模式)。这一设置调整可恢复代码智能提示功能,提升开发效率。

2026-04-11 15:34:28 506

原创 C/C++ AddressSanitizer内存错误检测工具使用方法

AddressSanitizer(ASan)是Google开发的内存安全检测工具,用于C/C++程序中检测内存泄漏、缓冲区溢出等运行时错误。它通过编译时插入检查代码,在运行时监控内存访问。使用方法:GCC使用-fsanitize=address -fno-omit-frame-pointer -g -O1编译标志,MSVC使用/fsanitize=address。ASan能精准定位非法内存操作,平衡检测精度与性能,是C/C++开发中重要的内存安全防线。

2026-04-01 15:52:43 101

原创 Git远端修改过账号密码,本地无法推送的解决方法

【摘要】Git远端修改密码后本地推送失败,报错"HTTP Basic: Access denied"。原因是本地Windows凭据管理器仍保存旧密码。解决方法:进入控制面板>用户账户>凭据管理器,删除对应的Git凭据记录。重新执行git push时会弹出认证窗口,输入新密码即可完成推送。该问题常见于密码修改后未同步更新本地凭据的情况,通过清除旧凭据并重新认证即可解决。

2026-03-25 14:02:41 259

原创 Ubuntu创建新用户后终端异常处理

摘要:Ubuntu系统使用useradd创建新用户时,若终端出现"$"符号、命令无法高亮、退格/补全键失效等问题,原因是默认shell被设为sh(dash)。解决方法为修改/etc/default/useradd文件,将SHELL=/bin/sh改为SHELL=/bin/bash,后续新建用户将默认使用bash,解决上述异常。该问题源于默认shell配置差异,调整后即可恢复正常终端功能。(149字)

2026-03-05 17:18:01 85

原创 Git基础命令使用笔记

Git基础操作指南摘要 本文介绍了Git的基本配置与常用操作,包括:1)用户信息配置(用户名和邮箱);2)仓库初始化与克隆(init/clone);3)工作流管理(工作目录、暂存区、HEAD);4)文件添加与提交(add/commit);5)远程仓库关联与推送(remote/push);6)分支操作(checkout/merge);7)拉取更新(fetch/pull);8)状态查看(status/log)。重点说明了本地配置与远程账户的独立性,以及推荐使用SSH协议克隆更稳定。适合Git初学者快速掌握版本控

2026-02-27 15:58:30 297

原创 C/C++ OpenSSL获取证书公钥并打印

摘要:该代码片段演示了如何从X509证书中提取公钥并打印其内容。首先使用X509_get_pubkey()获取公钥对象,然后创建BIO输出通道指向标准输出。通过EVP_PKEY_print_public()函数将公钥信息以可读格式输出,包括密钥类型(如RSA)、模数(Modulus)和指数(Exponent)等参数。最后释放相关资源,包括BIO对象和公钥对象。示例输出展示了2048位RSA公钥的完整信息,包含十六进制格式的模数和指数值(65537)。

2026-02-22 15:20:34 113

原创 C语言不占用独立线程周期性执行特定任务

摘要:本文展示了使用pthread_cond_timedwait实现定时任务的代码示例。与sleep不同,该方法在等待期间不会独占线程资源。通过创建线程、初始化条件变量和互斥锁,实现了每2秒执行do_task()的定时功能。代码包含线程创建、时间等待和任务执行等关键步骤,展示了高效的线程定时任务实现方式。

2026-01-27 09:14:03 65

原创 Linux可执行程序依赖库打包脚本

这是一个用于收集程序依赖库的bash脚本。脚本首先检查指定程序是否存在,然后创建目标目录。通过ldd命令列出程序依赖库,过滤系统库后,将找到的库文件复制到目标目录。使用前需修改PROGRAM(程序路径)和DESTINATION(打包路径)变量。执行后会显示复制过程,并提示所有依赖已复制到目标目录。适用于需要打包程序依赖库的场景。

2026-01-21 10:58:57 87

原创 VS Qt错误:无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl XXX::metaObject(void)

摘要:项目中出现Qt编译错误是由于直接添加的Qt代码未被正确识别,导致未生成moc中间文件。解决方法:先注释掉Q_OBJECT宏重新生成项目,再恢复宏并重新编译,即可在输出目录看到生成的moc_XXX.obj文件。该方法通过强制触发moc编译过程解决了外部符号缺失问题。

2026-01-07 16:09:11 360

原创 C/C++ Makefile基础模板

这是一个简单的Makefile文件,用于编译和测试动态链接库。主要功能包括: 定义编译参数(CC/CFLAGS/LIBS)和目标文件(TARGET/TEST_TARGET) 提供以下构建目标: all:默认目标,编译动态库和测试程序 clean:清理编译生成的文件 test:运行测试程序 install:安装动态库到系统目录 使用gcc编译动态库(.so)和测试程序,支持线程库(-lpthread) 包含必要的依赖关系和编译选项(-Wall -g -fPIC等)

2025-12-18 15:39:08 140

原创 MySQL终端常用命令

摘要:本文介绍了MySQL数据库的基本操作命令,包括终端登录(mysql -uusername -p)、查看数据库列表(show databases)、选择数据库(use db_name)、显示数据表(show tables)以及查看表结构(desc table_name)。这些命令涵盖了从连接到查看数据库内容的完整流程,是MySQL初学者需要掌握的基础操作。

2025-12-17 12:55:04 242

原创 Linux tcpdump抓包实践(以http为例)

本文介绍了使用tcpdump捕获HTTP/HTTPS流量的基本方法。主要包括:1)捕获所有接口的80/443端口流量并保存为pcap文件;2)捕获特定IP地址的进出流量;3)使用Wireshark查看捕获的数据包。关键命令示例展示了如何指定网络接口、输出文件、端口号及IP地址等参数。这些命令适用于网络流量分析、调试等场景,捕获结果可通过Wireshark进行可视化分析。

2025-12-16 19:07:06 553 1

原创 C/C++ OpenSSL提取与格式化证书颁发者/主题信息

本文介绍了使用OpenSSL库提取X.509证书颁发者(issuer)和主题(subject)信息的代码实现。两个函数分别通过X509_get_issuer_name()和X509_get_subject_name()获取证书信息,使用BIO内存缓冲区格式化输出,以逗号分隔各字段(如OU、O、CN等)。示例输出格式为"Issuer:OU=GlobalSignRootCA-R3,O=GlobalSign,CN=GlobalSign"和"Subject:OU=GlobalSignR

2025-12-12 15:29:49 163

原创 C/C++ OpenSSL自适应格式解析证书二进制字节流

摘要:该代码实现了PEM和DER格式证书的自适应解析功能。程序首先尝试PEM格式解析,失败后转为DER格式解析,最后尝试Base64编码的DER格式解析。主要包含三个函数:base64_decode()用于Base64解码,parse_certificate()实现三种证书格式的自动识别解析,main()函数完成文件读取和证书信息打印。代码使用OpenSSL库函数,能处理.crt(PEM)和.cer(DER)两种常见证书文件格式,并输出证书颁发者信息验证解析结果。该实现具有格式自适应性,适用于不同编码格式的

2025-12-11 16:13:42 290

原创 MSVC编译器(cl)常见编译命令

摘要:本文介绍了使用cl.exe编译C++程序的基本方法。默认情况下,编译单个文件(如main.cpp)会生成a.exe,使用/Fe选项可指定输出文件名(如myapp.exe)。对于多文件项目,可同时编译多个源文件(如main.cpp和utils.cpp)。还展示了其他编译选项的用法,包括宏定义(/D)、包含目录(/I)、库路径(/LIBPATH)和链接库文件。这些命令适用于Windows环境下使用cl.exe进行C++程序编译和链接的场景。

2025-12-10 14:02:47 311

原创 Python Pandas多列合并成一长列(扁平化)

本文介绍了Pandas中三种数据扁平化方法:melt()按变量名和值两列重组数据,concat()垂直拼接多列,stack()将多列转为单列。测试数据显示melt()保留原列名信息,concat()和stack()仅保留数值。三种方法各有特点,适用于不同的数据扁平化需求。

2025-11-29 16:24:14 658

原创 OpenCV ColorMap与灰度图彩色可视化

摘要:针对灰度图像中像素差异较小时难以区分的问题,OpenCV的applyColorMap方法可通过彩色映射提升可视化效果。该方法常用于热图、混淆矩阵等场景,示例代码展示了如何将灰度热图转换为彩色热图(使用JET色图)。不同色图类型可参考OpenCV官方文档中的ColorMaps参数。彩色映射能显著提高人眼对图像细节的辨识度。

2025-11-26 17:10:13 329

原创 Windows状态栏时间显示到秒的设置方法

本文介绍如何在Windows状态栏显示秒数时间显示。通过修改注册表(新建ShowSecondsInSystemClock项并设为1),然后重启资源管理器即可实现。但需注意,修改后时间可能不够精确,可通过同步时钟功能获得精确时间。该设置适用于抢票等需要精确计时的场景。

2025-11-06 16:36:41 879

原创 C/C++ char类型字符串直接赋值与分配内存赋值的区别

本文介绍了三种C++字符串赋值的实现方式:1)直接赋值将指针指向只读内存区的常量字符串,不可修改;2)堆内存分配通过malloc/new申请可修改内存,需手动释放;3)栈数组自动分配可修改内存,无需显式释放。三种方式在内存区域、修改权限和生命周期管理上存在差异:栈数组最便捷但空间有限,堆分配灵活但需手动管理,直接赋值最简单但不可修改。示例代码展示了各方式的声明、修改和输出操作。

2025-11-05 17:23:05 246

原创 CredentialProvider交互式登录实现

文章摘要:Windows CredentialProvider插件开发中,默认ICredentialProviderCredential接口无法实现交互式登录验证。微软提供了IConnectableCredentialProviderCredential接口,通过实现Connect方法可在GetSerialization前执行自定义交互逻辑。开发者可使用IQueryContinueWithStatus参数设置验证提示信息,并支持用户取消操作。文中给出了指纹验证的代码示例,展示了进度提示和取消处理的方法。(1

2025-10-24 17:27:29 528

原创 CredentialProvider登录方法调用逻辑分析

本文深入分析了Windows Credential Provider的核心接口与登录验证流程。首先将接口分为Credential和Provider两类,前者管理凭据字段和事件响应,后者负责用户管理和场景设置。通过调试跟踪获取了详细的方法调用栈,依次解析了实例创建、场景设置、用户枚举、UI初始化等关键方法。重点阐述了凭据验证的三个核心阶段:用户交互触发SetSelected方法、验证处理通过GetSerialization方法、结果反馈由ReportResult方法完成。文章指出该接口存在文档不完善、调用逻辑

2025-10-24 13:38:11 1160

原创 CredentialProvider多用户登录实现

本文分析了微软CredentialProvider样例插件在多用户环境下仅显示单个用户登录UI的问题。通过定位代码发现,该插件仅对索引值为0的第一个用户构建了登录凭据。解决方案包括:1)将单一凭据对象改为向量存储;2)修改枚举凭据方法,为每个用户创建凭据实例;3)调整凭据数量获取方法;4)修改凭据获取方法以返回对应索引的凭据;5)更新资源释放逻辑。修改后的代码实现了在所有用户登录界面显示自定义凭据UI的功能,解决了多用户环境下的显示问题。

2025-10-21 16:49:57 486

原创 Here Document的格式及使用方法

HereDocument是Linux/Unix shell中处理多行文本的语法结构,通过"<<标记"定义文本块,常用于向命令传递多行参数。其典型应用是自动生成配置文件,如示例脚本使用cat<<EOF将配置内容通过tee写入/etc/myapp.conf。关键点:1)标记(如EOF)界定文本范围;2)只处理标记间的文本;3)避免转义字符提高可读性。该技术简化了脚本中多行文本的处理,在配置管理等场景中非常实用。

2025-10-15 16:16:16 458

原创 CredentialProvider提供的UI控件与使用方法

本文介绍了CredentialProvider提供的9种UI控件及其使用方法。这些控件通过CREDENTIAL_PROVIDER_FIELD_TYPE枚举定义,开发者只能使用预设控件而不能自定义。文章以开源样例代码为例,展示了如何通过common.h文件配置控件组合,并强调必须保留SFI_NUM_FIELDS标识字段数量。特别说明了部分控件(如提交按钮和链接文本)可以通过指定GUID参数改变显示样式,如独立显示或按钮形式。文末列出了可用的GUID定义供开发者参考使用。

2025-10-15 12:41:29 705

原创 PWSTR/LPWSTR与std::wstring的相互转换

本文介绍了Windows编程中的宽字符字符串类型PWSTR/LPWSTR和C++标准库的std::wstring。PWSTR/LPWSTR定义为wchar_t*指针,用于处理Unicode宽字符;std::wstring是专为宽字符设计的字符串类,支持多语言字符处理。文章演示了两者的基本用法,并说明了它们之间的转换方法:PWSTR可直接构造std::wstring,而std::wstring可通过取首元素地址转为PWSTR。最后指出,若非适配Windows接口,推荐使用功能更丰富的std::wstring,

2025-10-13 16:28:04 317

原创 CredentialProvider基本概念、个人理解及吐槽

微软的CredentialProvider(凭据提供者)接口是用于开发第三方登录认证插件的官方框架。该接口允许开发者集成自定义认证方式(如指纹、人脸识别),但存在诸多问题:命名晦涩难懂(如将简单变量类型复杂化重定义)、文档不完善(缺乏图示和宏观解释)、参考资料匮乏、界面自定义性差(仅支持预置控件组合,无法修改外观或使用第三方控件)。开发者普遍反映该接口设计糟糕,学习门槛高,与Linux开发体验形成鲜明对比。

2025-10-09 17:26:37 355

原创 DebugView使用方法

DebugView是微软开发的系统调试工具,用于捕获本地或远程计算机的调试输出信息(包括TRACE和OutputDebugString输出)。它支持Windows 2000至11系统,无需调试器即可实时显示内核和Win32应用调试数据,特别适用于无法直接调试的场景(如CredentialProvider等DLL程序)。使用方法分为本地模式(直接运行捕获)和远程代理模式(通过IP连接虚拟机等远程主机)。该工具提供日志记录、筛选和监控功能,相比WinDbg等工具更轻量,适合基础调试需求。类似工具包括DbgShe

2025-09-30 14:56:01 826

原创 C/C++预定义宏与调试日志输出模板

本文介绍了基于C/C++预定义宏的调试日志输出宏模板设计。文章提供了四种实用模板:1)基础调试输出宏,包含文件名、行号和函数名;2)带时间戳的调试输出宏;3)文件日志输出模板(需自定义路径);4)带时间戳的文件日志模板。这些模板利用__FILE__、__LINE__等预定义宏,通过条件编译(#ifdef _DEBUG)实现调试模式控制,可帮助开发者快速定位程序错误并记录运行日志。文中特别强调了文件日志模板需要手动指定输出路径的安全设计。

2025-09-29 10:23:04 326

原创 C/C++常见的预定义宏与基本使用方法

C++预定义宏是编译器在预处理阶段自动定义的标识符,主要用于调试和环境信息获取。常用调试宏包括:FILE(当前文件名)、LINE(当前行号)、FUNCTION/func(当前函数名)。其中__func__是标准宏,而__FUNCTION__是编译器扩展宏,不同编译器实现可能不同。其他较少使用的宏包括__DATE__(编译日期)和__TIME__(编译时间)。这些宏通过提供源代码位置信息,帮助开发者进行错误定位和调试工作。

2025-09-26 15:40:52 423

原创 Visual Studio C/C++函数/方法使用Doxygen格式注释

本文介绍了在Visual Studio中快速插入Doxygen格式注释的方法。VS默认使用XML注释格式(///开头),而许多C/C++库更常用Doxygen格式(/**开头)。通过安装DoxygenComment插件,开发者可以在函数上方输入/**回车或/*!来自动生成Doxygen注释。该插件支持自定义注释标签格式,用户可在工具选项中修改模板,如将\param改为@param等参数标记。文中提供了三种注释格式(XML、Doxygen默认、Doxygen自定义)的代码示例对比,展示了如何为函数添加说明、参

2025-09-24 17:27:02 767

原创 GUID与Visual Studio下GUID的创建

GUID是一种算法生成的全局唯一标识符,包含时间戳和机器信息等随机参数保证唯一性。手动修改可能破坏其唯一性,导致数据库冲突等问题。Windows平台广泛使用GUID标识注册表、接口、数据库等对象。在Visual Studio中可通过"工具>创建GUID"快速生成所需格式的GUID并复制使用。

2025-08-29 16:05:39 366

原创 C++线程外部终止线程

摘要:本文介绍了一种使用C++标准库中的std::atomic标志安全终止线程的方法。当需要在不终止进程的情况下停止特定线程时,可通过外部设置atomic<bool>标志位,线程内部在关键位置检查该标志位实现有序退出。该方法解决了多线程共享资源的原子访问问题,相比直接终止线程更安全可靠。文中提供了示例代码并指出需在耗时函数前添加标志检查,以确保及时响应终止请求。这是实现线程外部终止的一种基础方案。

2025-08-22 15:10:22 421

原创 C++ 日志输出函数模板(基于Qt实现)

【代码】C++ 日志输出函数模板(基于Qt实现)

2025-08-05 10:42:55 189

VTK图形图像开发进阶及随书代码

本书主要介绍了VTK的基础知识与开发技术,可帮助VTK开发者从入门到进阶。快速进入项目实战,同时资源中打包了随书代码可以供开发者参考。

2019-01-22

boost库帮助文档--中文chm版

该文件为boost库chm版中文帮助文档,版本为boost1.41,其目录结构明确,内容详尽,可谓boost库开发必备电子书籍,希望对使用boost库开发的人员有所帮助。

2017-09-25

空空如也

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

TA关注的人

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