- 博客(564)
- 收藏
- 关注
原创 「IDE」VS2022 图标资源清理问题
本文介绍了VS2022中图标资源清理问题的5种解决方法:1)清理并重新生成解决方案(最有效);2)强制刷新资源文件;3)手动编辑资源文件ID;4)检查图标文件路径;5)重启VS。重点推荐方法1(清理临时文件+重新生成),同时建议检查ICO文件格式和尺寸,确保资源引用正确。博客还提供了个人专栏链接和技术资源。
2025-11-16 10:23:47
498
原创 「C/C++」经验篇 之 头文件引用详解
本文深入解析C++头文件引用最佳实践:1)优先使用前置声明减少依赖;2)遵循最小包含原则;3)确保头文件自包含性;4)采用#ifndef或#pragma once保护机制;5)规范头文件包含顺序;6)通过前置声明避免循环包含;7)对模板实现特殊处理。这些原则能提升编译效率、降低耦合度,是构建高质量C++项目的关键基础。
2025-10-31 09:50:02
875
原创 「Win」WindowsAPI 之 CreateWindowEx 创建一个重叠窗口、弹出窗口或子窗口
函数用于创建一个重叠窗口、弹出窗口或子窗口。它可以指定窗口的扩展样式,而基础的函数是其功能子集(扩展样式为 0)。在现代 Win32 编程中,是首选。[in] DWORD dwExStyle, // 扩展窗口样式[in, optional] LPCWSTR lpClassName, // 窗口类名[in, optional] LPCWSTR lpWindowName, // 窗口标题[in] DWORD dwStyle, // 窗口样式[in] int X, // 初始 X 坐标。
2025-10-02 21:34:26
1029
原创 「UG/NX」NXOpen篇 之 容器类 NXOpen::CurveCollection 曲线容器
本文全面解析NXOpen::CurveCollection类,这是西门子NX软件中曲线管理的核心容器。该类继承自TaggedObjectCollection,提供曲线创建、访问和管理的统一接口,具有智能对象管理和迭代器模式两大特性。构造函数为私有,需通过BasePart对象获取实例,确保部件所有权关系。 文章详细介绍了各类曲线创建方法,包括基于坐标点和点对象的直线创建方法、无限直线的两种创建方式(三点定义和配对方式),以及三点圆弧创建和矩阵定向圆弧创建的数学原理与参数解析。特别对圆弧创建中的alternat
2025-09-25 09:18:43
153
原创 「C/C++」番外篇 之 CMakeLists常用构建目录结构
本文介绍了两种CMakeLists常用构建目录结构方案:1)经典分层结构,包含分层清晰的include、src、tests等目录,推荐使用;2)按模块分组结构,以功能模块为单位组织代码。两种方案均遵循模块化设计原则,适用于C/C++项目构建。博客作者何曾参静谧还提供了多个技术专栏链接,涵盖Windows程序开发、C/C++、算法、Python等方向。文章配有动态分割线图片,风格简洁实用。
2025-09-24 21:32:10
185
原创 「智造」智能制造模具篇 之 冲压模(复合模、连续模、翻边模、铸件模)
本文详细对比了四种模具:复合模、连续模、翻边模和铸件模。复合模和连续模都属于冲压模具,前者在单工位同步完成多工序,适合高精度平板类零件;后者通过多工位顺序加工,适合大批量复杂钣金件。翻边模是单一功能的成形模,常用于冲压工艺中的翻边工序。铸件模则用于铸造工艺,处理熔融金属,适合复杂形状零件。四者在工艺类型、材料状态、生产效率和应用场景上存在显著差异。
2025-09-24 21:30:21
1077
原创 「UG/NX」常用命令对应ID号
本文整理了NX软件常用命令的中文名称、ID号与英文命令对照表,涵盖建模、草图、曲线、测量、编辑和视图操作六大类功能。建模部分包括块、圆柱体、拉伸、孔等基础特征;草图部分包含轮廓、直线、修剪等绘图工具;曲线部分列出基本曲线、样条、投影等命令;测量功能提供距离、角度、几何属性等分析工具;编辑部分包含移动、变换、显示隐藏等操作;视图操作则收录了缩放、旋转、渲染样式等显示控制命令。该表可作为NX二次开发的快速参考手册,帮助开发者准确调用各功能命令。
2025-09-21 00:40:05
158
原创 「Math」运动学、动力学、铰链运动的对比
本文对比了运动学、动力学和铰链运动三个概念。运动学研究物体运动的几何描述(位置、速度等),不考虑力;动力学则关注力与运动的关系,解释运动原因;铰链运动是前两者的研究对象,指由关节连接的多体系统运动。文章通过机器人抓取瓶子的实例,说明三者如何协同工作:运动学规划路径,动力学计算所需扭矩,而整个机器人系统则展现铰链运动特性。最后用表格直观对比了三者的核心关注点、问题和应用场景。
2025-09-17 10:31:38
1035
原创 「Math」Bullet 物理引擎和 NVIDIA PhysX 物理引擎
本文对比分析了Bullet和NVIDIA PhysX两大物理引擎的核心特性及适用场景。Bullet作为开源引擎,以跨平台支持和丰富的功能集(刚体/软体动力学、碰撞检测)见长,广泛应用于游戏、影视特效和机器人仿真领域,其Sequential Impulse求解器稳定但性能略逊。PhysX凭借GPU加速和NVIDIA硬件深度集成,在游戏行业占据主导地位,特别擅长大规模粒子/布料模拟,闭源但提供工业级稳定性和调试工具。两者各具优势:Bullet适合需要高度定制化的开源项目,PhysX则更适合追求极致性能的3A游戏
2025-09-16 14:00:38
1168
原创 「Math」运动学中的欧拉角、四元数、矩阵与轴角
本文系统介绍了三维旋转的四种数学表示方法及其特性。旋转矩阵通过3x3正交矩阵实现向量变换,适合底层计算但存在冗余;欧拉角以三角度值直观描述旋转,但存在万向节死锁问题;轴角表示法用旋转轴和角度更本质地表达旋转;四元数作为最优方案,兼具紧凑性、无奇异性及运算高效的特点,成为计算机图形学和机器人学中的首选。各方法根据应用场景互补使用,其中欧拉角适合人机交互,四元数适用于复杂计算和插值,旋转矩阵则作为基础运算工具。理解这些表示法的优劣对三维空间姿态处理至关重要。(149字)
2025-09-15 11:34:31
1284
原创 「Win」窗口退出 之 PostQuitMessage(0) 和 SendMessage(WM_CLOSE)
本文详细解析了Windows编程中PostQuitMessage(0)和SendMessage(WM_CLOSE)两个关键函数的区别。PostQuitMessage(0)向当前线程消息队列投递WM_QUIT消息,用于退出消息循环;而SendMessage(WM_CLOSE)则向指定窗口发送关闭消息,触发窗口关闭流程。文章通过代码示例对比了两者的工作流程,并列出使用场景:前者适合程序退出,后者用于窗口关闭。最后强调标准退出流程应在WM_DESTROY中调用PostQuitMessage(0),而窗口关闭处理应
2025-09-12 14:50:50
1208
原创 「QT」主程序类 之 QApplication 应用程序的控制流
本文深入解析了Qt框架中的核心类QApplication,它作为GUI应用程序的控制中枢,承担着事件处理、信号槽管理和系统交互等关键功能。文章首先介绍了QApplication的基本结构(必须包含一个QApplication对象)和继承体系(QObject→QGuiApplication→QCoreApplication→QApplication)。接着详细剖析了其核心功能:事件循环机制(包括exec()执行流程)和信号槽连接管理(支持全局信号连接)。最后重点讲解了QApplication的关键特性,包括应
2025-09-12 11:49:31
1056
原创 「C/C++」C/C++经验篇 之 pch.h 预编译头
pch.h作为预编译头文件,能够显著提升大型C++项目的编译效率。它通过预先编译常用头文件(如STL、第三方库和项目公共头文件),避免重复解析,使编译速度提升50-90%。使用时需将pch.h作为源文件的首个包含项,并注意仅包含稳定、通用的内容。现代构建工具如CMake和VS都提供预编译头支持,合理配置可大幅优化开发体验。
2025-09-11 17:51:36
995
原创 「C/C++」C/C++经验篇 之 头文件预编译头 vs 直接包含
本文对比分析了C++项目中预编译头(PCH)与直接包含两种头文件管理策略的优劣,并给出推荐方案。预编译头适合包含稳定标准库、第三方库和项目基础头文件,能显著提升编译速度;直接包含则适用于业务特定和频繁变化的头文件,保持灵活性。建议采用混合策略:在预编译头中放入稳定内容,业务头文件直接包含,并按模块组织包含顺序。这种方案在大型项目中能平衡编译性能和维护性。
2025-09-11 17:18:21
1270
原创 「C/C++」C/C++经验篇 之 引用头文件放头文件和源文件中好
本文介绍了C/C++头文件包含的最佳实践,核心原则是最小化头文件依赖。主要内容包括: 必须放在头文件的情况:继承、组合(成员对象)、函数参数/返回值中使用具体类。 优先放源文件的情况:使用指针/引用时采用前向声明,在实现文件中包含对应头文件。 优势分析:减少编译时间、降低耦合度、避免循环引用。 通过遵循"最小依赖原则",可以显著提升编译效率和代码模块化程度。建议开发者优先使用前向声明,仅在必要时才在头文件中包含其他头文件。
2025-08-30 17:22:26
1245
原创 「UG/NX」NXOpen篇 之 特征篇 BlockFeatureBuilder 块特征
本文详细解析NXOpen API中的BlockFeatureBuilder类,该构建器用于在NX软件中创建立方体特征。文章从类定义、创建方式入手,重点阐述其核心功能:提供三种创建方式(原点边长、两点高度、对角点),完善的几何参数管理系统(尺寸、位置、方向控制),布尔运算集成以及关联性控制机制。通过版本演进分析展示了功能增强历程,并附有典型使用示例代码。作为NX实体建模的重要组件,BlockFeatureBuilder为参数化设计提供了强大支持。
2025-08-26 15:02:54
179
原创 「UG/NX」NXOpen篇 之 智能对象集 XformCollection 变换矩阵
NX Open C++ API中的XformCollection类提供了丰富的坐标变换功能,支持通过几何元素、现有坐标系、装配组件等多种方式创建变换矩阵。主要功能包括:基础创建(原点+方向向量)、基于面/线/点构建坐标系、装配相关变换(组件上下文、爆炸图)、运动仿真变换(平移/旋转)以及高级操作(法向反转、动态操纵等)。该类继承自TaggedObjectCollection,支持迭代器遍历,是NX二次开发中实现坐标系变换的核心工具,广泛应用于建模、装配和运动仿真等场景。
2025-08-26 08:00:00
169
原创 「UG/NX」NXOpen篇 之 智能对象集 ScalarCollection 标量对象
"# NX Open API 标量管理类 ScalarCollection 解析" 摘要 ScalarCollection 是 Siemens NX Open API 中用于管理标量参数的集合类,支持参数化设计功能。该类实现了集合模式、工厂模式和迭代器模式,提供多种创建标量对象的方法,包括基础数值标量、表达式驱动标量、倒数标量等。核心特性包括量纲类型支持(长度、角度等)、智能对象更新机制、参数关联和数学运算能力,是NX参数化设计的重要组成部分。通过该集合类,开发者可以方便地创建和管理用于
2025-08-25 19:26:06
214
原创 「UG/NX」NXOpen篇 之 智能对象集 PlaneCollection 智能平面
本文详细解析了NX Open API中的PlaneCollection类,这是一个用于创建和管理平面对象的集合类。文章从核心设计模式(集合、工厂、迭代器模式)出发,详细介绍了其迭代器实现、核心方法分类(基础平面创建、基准特征创建、高级创建等),以及关键技术特性(平面定义方式、类型枚举、参数化设计、智能对象特性)。最后通过代码示例演示了如何通过原点和法线创建平面,展现了该类在CAD系统参考几何元素管理中的重要作用。
2025-08-25 08:00:00
717
原创 「UG/NX」NXOpen篇 之 智能对象集 CurveCollection 智能曲线
本文介绍了NX Open API中的CurveCollection类,这是一个用于创建和管理曲线几何对象的集合类。主要内容包括: 类概述:CurveCollection是NX Open API的核心组件,用于管理各种曲线对象,如直线、圆弧、椭圆等。 核心功能: 实现了集合模式、工厂模式和迭代器模式 提供了多种创建曲线的方法 支持遍历所有曲线对象 主要方法: 直线创建:支持通过坐标点或点对象创建直线 圆弧创建:提供三点创建、矩阵定义和方向向量三种方式 椭圆/抛物线/双曲线创建:支持通过矩阵或方向向量定义 应用
2025-08-24 11:04:07
60
原创 「UG/NX」NXOpen篇 之 智能对象集 AxisCollection 智能轴
本文详细解析了Siemens NX Open API中的AxisCollection类,这是一个用于创建和管理轴对象的集合类。文章从设计模式、核心方法和关键技术特性三个方面进行阐述:1)采用集合模式、工厂模式和迭代器模式;2)提供三种创建轴的方式(通过点/方向、坐标、变换);3)重点分析了参数化与非参数化轴的区别、智能对象特性及更新选项限制。通过代码示例展示了如何创建参数化和非参数化轴对象,揭示了NX系统中轴对象由"点+方向向量"构成的数学定义,为CAD二次开发提供了重要参考。
2025-08-24 10:47:11
76
原创 「UG/NX」NXOpen篇 之 智能对象集 DirectionCollection 智能矢量
本文介绍了NX Open API中的DirectionCollection类,这是一个用于创建和管理方向对象的集合类。摘要要点如下: 类功能:专门创建和管理CAD系统中的方向对象,用于定义矢量、法线、切线等方向。 设计模式: 集合模式:作为方向对象容器 工厂模式:提供多种创建方法 迭代器模式:支持遍历操作 核心方法: 基础方向创建(通过原点和向量) 基于几何元素创建(曲线/边、曲面/面、圆锥曲线) 两点间方向创建 参数化方向创建(如曲线上的切线/法线) 应用场景:在NX二次开发中,用于参数化建模时定义各种方
2025-08-24 10:42:00
81
原创 「UG/NX」NXOpen篇 之 智能对象集PointCollection智能点
"PointCollection"是Siemens NX Open API中管理智能点对象的集合类,提供多种创建点的方法。该类采用集合模式、工厂模式和迭代器模式,包含枚举类型定义不同创建选项,实现STL风格的迭代器便于遍历。核心功能包括:通过坐标或参数直接创建点;在曲线上按绝对/相对位置创建点;在曲面上按UV参数创建点;以及创建曲线/曲面/平面之间的交点。该类体现了NX参数化设计理念,支持多种定位方式(距离、百分比、弧长等),是NX二次开发中处理点对象的核心工具。
2025-08-24 10:34:16
101
原创 「C/C++」C/C++番外篇 之 计算机加密算法
加密大量数据:首选AES(256位),资源受限或无AES硬件加速时考虑ChaCha20。数字证书/密钥交换:首选ECC(更高效),兼容性要求高时用RSA(2048位以上)。追求前向保密必须使用ECDH或DHE。数据完整性/密码存储:首选SHA-256或SHA-512。绝对避免使用MD5和SHA-1。总体趋势ECC正在取代RSASHA-3作为SHA-2的下一代补充,AES在对称加密领域保持统治地位。身份认证与密钥交换网站服务器将其RSA或ECC证书(包含公钥)发送给浏览器。浏览器验证证书真实性。
2025-08-21 09:58:59
1234
原创 「C/C++」C/C++编译篇 之 C++编译器字符集深度解析:Unicode与多字节字符集的全面对比
字符集(Character Set)是字符与数字编码的映射关系系统,它定义了计算机如何表示和存储文本数据。C++编译器处理字符集的方式直接影响程序的国际化支持能力。在C++开发中,理解字符集差异对构建国际化应用至关重要。统一使用UTF-8编码设置正确的编译器选项避免混合使用不同编码对文本处理使用现代C++特性多字节字符集仍存在于遗留系统中,但Unicode(特别是UTF-8)已成为现代C++开发的事实标准。正确理解和应用这些知识,可以避免大多数国际化文本处理问题。何曾参静谧的博客。
2025-08-06 11:05:49
903
原创 「C/C++」C/C++经验篇 之 头文件与源文件:同文件夹 vs 分文件夹存放之争
C++项目头文件(.h/.hpp)与源文件(.cpp)的组织方式主要有两种:同文件夹存放和分文件夹存放。同文件夹结构适合小型项目,开发便捷、维护直观,但难以适应大型项目;分文件夹结构(include/src分离)则更适合中大型项目,能清晰隔离接口与实现,便于库文件制作。实际选择需考量项目规模、团队人数、构建复杂度等因素。知名项目如Google Test采用同文件夹,而Boost、LLVM等则采用分文件夹。建议初创项目从同文件夹开始,当出现头文件被外部引用、目录文件过多等信号时再考虑拆分,或采用模块化混合方案
2025-08-05 21:54:33
1136
原创 「C/C++」C/C++编译篇 之 Debug和Release编译模式的区别
通过合理选择编译模式,可以在开发效率和运行性能之间取得最佳平衡。Release优化后可能直接计算为499500(等差数列求和)重新组织代码,使频繁执行的分支路径更高效。重新排列指令以更好地利用CPU流水线。
2025-08-05 11:48:14
1137
原创 「C/C++」C/C++经验篇之 使用宏来控制代码不同版本编译
本文介绍了在C/C++中使用宏控制不同版本代码编译的方法。主要内容包括:1)通过#define定义宏(如NXCOPY 75);2)使用#if、#ifdef等预处理指令实现条件编译;3)实际应用示例展示功能开关和平台特定代码的实现;4)宏定义的三种常见来源;5)最佳实践建议,如添加前缀、集中管理、文档化等。文章还提供了版本管理头文件的示例代码,帮助开发者有效管理多版本代码编译。完整内容可访问作者CSDN博客查看更多技术文章。
2025-08-05 09:29:50
517
原创 「Math」曲线篇 之 曲线常规,三次,五次,高阶的区别
本文系统介绍了不同阶数曲线(多项式)的特性及其应用场景。从一次/二次常规曲线的简单几何建模,到三次曲线的拐点描述和动画应用,再到五次曲线的高平滑运动控制,最后到高阶曲线的特殊需求用途。文章通过对比表格清晰展示了各阶曲线在连续性、自由度、计算成本和适用场景上的差异,并建议优先选择三次或五次曲线以满足大多数工程需求,避免高阶曲线可能带来的过拟合和计算复杂度问题。适合数学和工程领域读者参考曲线选择策略。
2025-08-02 20:34:34
988
原创 「C/C++」C/C++异常篇 之 何时抛出异常,何时避免异常
摘要: 本文探讨C++异常处理的最佳实践,分析何时应抛出异常(如不可恢复错误、构造函数失败、违反前置条件等)及何时应避免异常(如高频调用、析构函数、跨语言交互等)。文章建议优先使用标准异常类型(如std::runtime_error),在性能关键路径改用返回值或std::optional,并强调析构函数必须标记noexcept。通过合理使用异常机制,可提升代码健壮性,同时避免性能损耗与逻辑混乱。
2025-08-01 11:10:48
798
原创 「C/C++」C/C++番外篇 之 Clion中的CMakeLists.txt 介绍
CLion 中的 CMakeLists.txt 配置指南 CLion 原生支持 CMake,通过 CMakeLists.txt 管理 C/C++ 项目。基础配置包括: 项目定义:cmake_minimum_required 指定版本,project 设置项目名称和语言(C/C++)。 编译控制:set(CMAKE_CXX_STANDARD 17) 指定标准,add_compile_options 添加警告选项。 目标构建:add_executable 生成可执行文件,add_library 创建静态/动态库
2025-07-04 13:28:16
914
原创 「C/C++」C/C++番外篇 之 程序员的两大核心思维(鸟瞰与虫视)
本文探讨了程序员必备的两种核心思维方式:自顶向下的全局观与自底向上的微观细节把控。全局观强调从系统架构、业务目标等宏观角度思考问题,而细节把控则关注代码质量、算法效率等微观层面。文章分析了两种思维的辩证关系,指出它们互为补充而非对立,并提供了培养这两种思维的方法与实践建议。通过行业案例说明,在复杂系统开发中,只有将宏观设计与微观实现有机结合,才能构建出高质量、可维护的软件系统。建议程序员在不同职业阶段有侧重地培养这两种能力,最终实现思维方式的平衡统一。
2025-06-27 10:59:23
1099
原创 「C/C++」C/C++经验篇 之 防止重复包含的#ifndef和#pragma once两种方法
定义基本正确,但按照现代C++项目规范,建议优先考虑使用。宏定义防止重复包含是一种经典方法,虽然现代更推荐使用。在C++头文件中使用。
2025-06-25 09:03:33
558
原创 「C/C++」C/C++经验篇 之 C++防御性编程原则
本文介绍了C++防御性编程的核心原则与实践方法,包括输入验证、资源管理、内存安全和异常处理等关键方面。主要内容涵盖:1)基本防御原则如输入验证和RAII资源管理;2)内存安全技术包括智能指针和边界检查;3)异常安全实现的三个级别(基本、强和不抛保证)及安全交换模式;4)类型安全实践如避免C风格转换和使用类型安全替代方案。这些技术有助于开发健壮、安全的C++代码,减少潜在错误和漏洞。
2025-06-24 16:19:52
1133
原创 「C/C++」C/C++经验篇 之 函数分装时错误处理的方法
在C++中处理错误信息的常见方法包括:1) 返回值/错误码(简单高效但信息有限);2) std::optional(清晰表达失败但无详情);3) 抛出异常(适合严重错误,可携带详细信息);4) 结构化错误(结合错误码和描述,需C++17);5) 日志记录(适用于调试)。选择方案需权衡性能、信息量和代码复杂度,建议简单错误用返回值/optional,关键错误用异常,复杂场景用结构化错误或日志。
2025-06-19 09:24:14
1083
原创 「C/C++」C++11 之 enum与enum class全面对比
C++11引入的enum class解决了传统enum的三大痛点:命名污染(枚举量泄漏到外层作用域)、隐式类型转换(自动转整型导致安全隐患)和底层类型不确定(影响跨平台兼容)。通过对比表格可见,enum class具有作用域限定、禁止隐式转换、支持类型指定等优势,特别适合需要强类型安全的场景。而传统enum仍适用于C兼容、标志位操作等简单用例。开发者应根据类型安全需求、代码维护性等因素合理选择,现代C++项目推荐优先采用enum class。
2025-06-05 11:33:24
957
原创 「C/C++」C/C++编译篇 之 C++编译与链接机制深度解析
本文深度解析C++程序构建全流程,包含四个关键阶段:预处理(宏展开、头文件处理)、编译(词法/语法分析、优化)、汇编(生成目标文件)和链接(符号解析与重定位)。文章详细介绍了静态/动态链接区别、常见链接错误,以及C++特有的名称修饰、模板实例化等机制。同时提供现代构建实践(CMake、编译数据库)和调试技巧(nm/objdump工具使用),帮助开发者全面理解C++编译链接过程,掌握构建优化与问题排查方法。
2025-06-04 16:41:48
1121
原创 「书」个人搞钱篇 之 搞钱的本质
✅短期看:是「信息差+执行力」——你能发现别人没发现的机会,并快速行动。✅中期看:是「资源+杠杆」——你能调动多少人力、资本、流量来放大收益。✅长期看:是「认知+系统」——你的思维模式能否持续发现新机会,并建立自动赚钱的体系。最终,搞钱是一场关于「人性、规则、资源」的综合博弈,赢家永远是那些看透游戏规则并高效执行的人。何曾参静谧的博客。
2025-06-04 09:32:15
725
原创 「IDE」VS2022 调试篇 之 信息输出方式
本文介绍了在Visual Studio中调试时std::cout输出的控制台窗口位置问题。主要分为四种情况:1)控制台程序会显示在独立CMD窗口;2)GUI程序需重定向到VS输出窗口或使用OutputDebugString;3)服务/后台进程需通过日志或调试器查看;4)VS的"输出"窗口可统一查看调试信息。
2025-05-29 13:59:29
1376
原创 「C/C++」C/C++标准库 之 #include <tuple> 之 不同类型值打包模板类
本文全面介绍了C++中的std::tuple模板类。作为C++11引入的异构集合,tuple允许将固定数量、不同类型的值打包为单一对象。
2025-05-29 08:29:33
839
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅