- 博客(60)
- 资源 (5)
- 收藏
- 关注
原创 Qt 自带的QSqlDatabase 模块中使用的 SQLite 和 SQLite 官方提供的 C 语言版本(sqlite.org)对比
Qt 自带的模块中使用的 SQLite 和 SQLite 官方提供的 C 语言版本(sqlite.org)在核心功能上是相同的,但它们在集成方式、API 封装、功能支持以及版本更新上存在一些区别。
2025-04-08 10:55:12
738
原创 同样是虚函数,为什么普通虚函数不会自动调用基类的虚函数,而虚析构函数会自动调用基类的?
普通虚函数和虚析构函数在调用基类函数时存在差异,主要原因如下:
2025-04-06 22:27:22
317
原创 VS中动态库(外部库)导出与使用
在 C++ 中,动态库(Dynamic Link Library, DLL)允许模块化开发,运行时加载共享代码。正确导出和使用动态库可以大幅提高代码的模块化和复用性。在 Linux/macOS 上,动态库是。(Shared Object)或。在头文件中定义一个宏,用于控制。在 DLL 项目中,使用。(编译 DLL 时)和。
2025-04-03 00:22:39
848
原创 error LNK2019: 无法解析的外部符号 __imp__XXXX,该符号在函数xxxxx中被引用
这个链接错误表明在编译过程中,链接器无法找到XXXX函数的实现。
2025-04-02 23:56:08
357
原创 C++动态库对外接口通过接口方式实现
2. 实现导出函数 (ShapeExports.cpp)3. 修改实现类 (Circle.h/Rectangle.h)关键改造点导出符号控制:C语言接口导出:隐藏实现细节:内存管理:二进制兼容性:编译命令示例:使用动态库的客户端代码客户端编译链接WindowsLinux/macOS最佳实践建议版本控制:在接口中添加版本信息错误处理:考虑添加错误码返回机制ABI稳定性:避免修改已发布的接口跨模块内存:所有内存分配/释放应在同一模块中完成异常安全:禁用异常或明确异常规
2025-04-02 20:34:44
797
转载 在C++98中将类内的函数指针成员提供给其他类调用
静态函数桥梁:简单直接,但需要额外静态函数成员函数指针:直接使用成员函数指针,语法稍复杂接口类:更面向对象,推荐用于复杂场景仿函数:灵活但需要更多代码在C++98中,接口类方法通常是最推荐的方式,因为它提供了更好的类型安全性和扩展性。如果只需要简单的回调,成员函数指针方法也可以工作得很好。注意在真实代码中要考虑对象生命周期管理,避免悬空指针等问题。
2025-03-26 11:07:19
15
转载 C++继承模板库-引发符号冲突
符号冲突可能减少(但仍然有风险,尤其是不同版本的 Qt)。,改用组合或 PIMPL,否则可能引发难以调试的运行时错误!,从而引发符号冲突(symbol clash)。时,会导致 QList<QVariant>如果必须继承,可以用。
2025-03-25 14:15:35
11
原创 c++中类字段放到堆上还是栈上
如果类的字段是指针或动态分配的内存,则指针本身存储在对象所在的内存区域(栈或堆),而指针指向的内存可以位于堆上。通过以上分析,可以清楚地理解 C++ 中类字段的存储位置及其管理方式。在 C++ 中,类的字段(成员变量)的存储位置(堆或栈)取决于。当对象在栈上创建时,其所有字段(成员变量)也存储在栈上。当对象在堆上创建时,其所有字段(成员变量)也存储在堆上。,而不是字段本身的定义。以下是对这些情况的详细说明和示例。
2025-02-17 18:09:42
341
原创 c++ 引用
在 C++ 中,引用 是一种别名机制,它为变量提供了一个别名(alias),使得通过引用可以间接访问原始变量。引用的底层实现通常是通过 指针 来完成的,但引用在语法上更加直观和安全。为了帮助你理解引用如何实现间接寻址以及与实参的关联,我将通过文字描述和结构图来说明。引用的间接寻址机制可以通过以下步骤理解:定义引用:这里, 是 的别名,底层可能是一个指向 的指针。通过引用访问变量:这相当于通过指针 来修改 的值。引用的本质:以下是一个结构图,展示了引用如何通过间接寻址与实参关联:
2025-02-17 17:56:31
415
原创 查看cpu数与线程数
NumberOfLogicalProcessors :线程数。NumberOfCores : cpu核心数。查看cpu数与线程数。
2024-06-05 11:51:02
281
原创 QT debug编译失败:xxx/bin/ld.exe: cannot find -lxxd1
原因:由于编译时,使用debug模式下,动态库没有对应的lxxd1中的xx库。解决方案2:在引用的三方pri文件中,去掉多余的d。解决方案1:改为release编译;,可以看到编译需要使用的文件明。QT中的.pro文件中,搜索。
2024-03-04 20:06:13
386
原创 QObject::connect: signal not found in QPushButton
QObject::connect: signal not found in QPushButton
2023-11-20 17:20:12
633
原创 笔记本休眠后耳机没声音了怎么解决
双击 C:\Program Files (x86)\Hotkey\InitHeadphone.exe。安装hotkey驱动之后。
2023-05-26 00:11:21
1301
1
原创 WebStrom文件页签不可见问题
1.打开Window->Editor Tabs->Configure Editor Tabs。问题:WebStrom文件页签不可见,无法关闭文件,如下图。2.设置Tab placement为Top。
2023-05-18 22:22:50
172
原创 VSCode打开项目乱码
2.搜索encoding,勾选文件自动猜测编码格式【Auto Guess Encoding】1.打开VSCode–>文件–>首选项–>设置。3.vscode查看原来乱码的文件是否正常显示。
2023-05-18 11:38:05
608
原创 安排软件保护服务在 2022-07-26T23:00:43Z 时重新启动成功。原因: RulesEngine
安排软件保护服务在 2022-07-26T23:00:43Z 时重新启动成功。原因: RulesEngine
2022-07-15 09:30:45
28910
原创 error MSB6006 : “lc.exe”已退出,代码为-1
问题:error MSB6006 : "lc.exe”已退出,代码为-1解决方法:本场景在使用DevExpress组件中用到,需要将Properties下的License文件删除
2022-05-18 15:33:47
2546
4
原创 C# string获取byte长度(汉字按2byte计算)
目的1.获取中英文混合下的字符串byte长度,中文字符占2byte,英文占1byte实现//方法1,Encoding.Default为UTF-8时,未达到预期Console.WriteLine(Encoding.Default.GetBytes("12345678").Length);//8Console.WriteLine(Encoding.Default.GetBytes("啊啊啊啊").Length);//12Console.WriteLine(Encoding.Default.Encod
2022-04-25 10:19:30
2430
转载 c#实现深拷贝的几种方式及效率对比
转自:https://www.quarkbook.com/?p=1210c#实现深拷贝的几种方式及效率对比1、手写创建对象2、反射3、序列化4、AutoMapper5、表达式树表达式树深拷贝代码:using AutoMapper;using System;using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Linq.Expressions;using Sys
2022-03-23 13:51:48
1352
原创 VisualStudio(vs)如何忽略项目编译
1.菜单栏:生成(build)->配置管理器(Configuration Manager);2.选择对应的模式(Debug/Release)、平台(x64/x86);3.修改对应项目是否编译*不勾选生成后,项目进行编译时会自动跳过,主动编译也会跳过当前项目的编译...
2022-03-16 17:46:59
2834
原创 WPF 解决ViewModel关闭自身View的解决方案
推荐 https://www.cnblogs.com/SilveryBullet/p/8384919.html参考 https://www.cnblogs.com/xinyf/p/6294863.html
2022-03-07 22:50:06
315
原创 动态规划-Dynamic Programming
概念动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果参考点【重要】子路径最优解也是全局最优解,如果不满足则不适合使用动态
2022-02-10 23:44:21
121
转载 关于负数取模的算法原理
转自:负数的取模运算取模公式取模结果 = 原值 - (原值 ÷ 模 x 模)常见语言(1)C/Java/C#语言 C/Java/C#语言除法采用的是趋零截尾(事实上,C89对于除数或被除数之一为负数情况的结果是未定义的;C99才正式确定了趋零截尾),即truncate除法。它们的取模运算符是%,并且此运算符只接受整型操作数。一个规律是,取模运算的结果的符号与第一个操作数的符号相同(或为0)。因此(-11)%5=-11-[(-11)/5]*5=-11-(-2)*5=-1。(2)C++语言 C
2022-02-08 20:48:06
2792
原创 .Net框架下EF分表方案
目标在.net(非.net core)在EF6基础上最容易实现的分表方案;思路1.开源库实现EF的分表,如FreeSql库2.在EFCore实现分表,已有针对EFCore的分表方案,如EFCore.Sharding库+EFCore3.0实际应用待补充......
2022-01-10 11:05:01
1208
转载 sqlserver(mssql)修改mdf/ldf文件名
1.分离数据库2.修改文件名3.附加数据库参考:https://bbs.youkuaiyun.com/topics/310156317
2021-09-17 11:08:32
1102
转载 .Net项目添加多框架
转自:https://www.cnblogs.com/yxcn/p/11091097.html需求:为满足一个类库被不同框架的程序调用,需要类库支持多框架1.新建一个 .netstandard2.0类库项目,名为:TCM.SuperX.YM.Contracts2.右键点击类库名称,选择“编辑TCM.SuperX.YM.Contracts.csproj”3.修改TragetFramework标签内容,加入其它框架名称及版本号原始:修改后:4.为类文件选择对应框架...
2021-06-07 09:56:29
709
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人