C++
Music 爱好者
热爱音乐 编写符合直觉可读的代码,没必要为了语法糖而使用不合时宜的代码
展开
-
Qt Windows打包程序脚本
【代码】Qt Windows打包程序脚本。原创 2023-01-13 16:33:02 · 247 阅读 · 0 评论 -
[DT框架使用教程01]如何在DT框架中创建插件
复制框架用例的插件,进行修改名称等,加入plugins.pro文件中即可。目前针对于DT框架创建插件的话,可以使用两种方式进行创建。DT框架是基于QT框架衍生出的组件化框架。对于想具体了解DT框架的同学,介绍可以查看。(5)一路下一步 可以看到插件补充进去了。(4) 输入名称 这边为了演示 选择。(1)使用QtCreator 打开。复制框架用例的插件(推荐)原创 2022-12-13 00:07:54 · 823 阅读 · 0 评论 -
基于Qt的桌面客户端组件化框架DT 开源啦
这个是本人在工作中基于QT开发的组件化桌面开发框架,目前打算开源出来提供给大家,节省大家的开发时间和效率,希望对大家的开发有所帮助,也欢迎提出意见和改进建议。原创 2022-12-08 14:03:53 · 3806 阅读 · 5 评论 -
Qt 实现 Element-ui 警告的样式
Qt实现Element-ui的样式效果原创 2022-09-16 15:37:17 · 659 阅读 · 1 评论 -
QJsonObject 的一些弊端
QJsonObject的问题原创 2022-09-05 15:30:57 · 323 阅读 · 0 评论 -
Windows 部署QT程序的问题汇总
QT相关问题原创 2022-08-15 17:41:21 · 269 阅读 · 0 评论 -
DNS原理
DNS的原理原创 2022-01-26 16:34:38 · 870 阅读 · 0 评论 -
问题处理:qt.qpa.plugin: Could not find the Qt platform plugin “cocoa“ in ““
这块比较方便处理:增加系统变量原创 2021-12-06 17:38:48 · 2531 阅读 · 0 评论 -
QT 在最新版mac下无法显示变量的问题处理
原因:因为之前有玩mac qt开发 ,刚刚好遇到这个问题后来跟进才发现是xcode的源码判断问题:这块比较坑,需要调整xcode的源码才能调整通过,调整部分 # 自定义调整 return self.GetFileAddress()文件的路径/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/Python/lldb/__init__.py有这原创 2021-12-04 20:52:01 · 1083 阅读 · 0 评论 -
c++获取macos中的uuid的两种方式
1.调用系统API#include <IOKit/IOKitLib.h>#include <iostream>using namespace std;QString GetMacUUID(){ char buf[512] = ""; int bufSize = sizeof(buf); io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault.原创 2021-04-18 11:31:54 · 984 阅读 · 0 评论 -
C++ 获取MacOS版本号
#include <stdio.h>/*! @brief Returns one component of the OS version @param component 1=major, 2=minor, 3=bugfix */int GetOSVersionComponent(int component) { char cmd[64] ; sprintf( cmd, "sw_vers -produc原创 2021-04-06 17:21:34 · 701 阅读 · 0 评论 -
mac下编译curl库(处理https的问题)
一、下载curl的编译源码下载链接:https://github.com/curl/curl点击此处 下载该release版本解压后命令行进入该页面执行如下命令./configure --with-darwinsslmakemake install执行后可以在/usr/local/lib路径下看到相应的库检验是否安装成功执行curl https://www.baidu.com可以看到则说明安装成功...原创 2021-03-11 17:16:05 · 915 阅读 · 1 评论 -
QLibrary 出现错误的排查
当使用QLibrary加载动态库的时候,会经常出现例如Load为空,或者resolve为空的情况,这时候排查问题所在可以通过QLibrary自己提供的一个函数errorString()获得错误信息,以便与处理问题的所在 是个比较好的排查方式其中errorstring 就有点类似于windows下的geterrorcode 这两者的效果基本上都是一样的,就是记录当前错误的原因...原创 2021-03-09 09:43:53 · 3344 阅读 · 0 评论 -
C++ Lambda表达式demo
// LambdaDemo.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <string>using namespace std;void TestLambda(){ // 测试Lambda表示式的使用 []{ cout << "Lambda空" << endl; }原创 2020-12-09 16:50:48 · 187 阅读 · 0 评论 -
C++ protected 一种使用场景
在一个类中,开发者如果仅仅只是想用类中的静态方法 ,而不需要创建该类对象,即可将构造函数放在protected当中,那样就无法创建该类的实例:例如:#include "stdafx.h"#include <iostream>using namespace std;class A{public: ~A() { cout << "destroy" << endl; } static void say() { cout << "原创 2020-12-07 18:01:53 · 426 阅读 · 0 评论 -
观察者模式实际例子demo
最简单的观察者模式 –// Watcher.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <string>#include <vector>#include <memory>#include <algorithm>using namespace std;//原创 2020-12-07 16:40:31 · 274 阅读 · 0 评论 -
字节跳动的一面内容记录
1.PeekMessage和GetMessage区别2.SendMessage和PostMessage区别3.QT信号与槽深挖4.堆和栈哪个性能更好5.C++二进制代码存在哪6.Windows如何实现刷新界面功能7.虚拟内存在windows上如何实现8.C++内存分区9.线程通信的几种方式10.共享内存和管道通信的区别11.SendMessage可以支持不同线程吗12.消息循环的理解13.消息循环如何退出...原创 2020-11-20 16:48:04 · 348 阅读 · 0 评论 -
单例demo
// 保证线程安全的单例模式// 使用静态变量的方式class Single{public: Single() { cout << "Single Init" << endl; } ~Single() { } void dee() { cout << "ok" << endl; } static Single& get_instance() { static Single s_Single; return原创 2020-09-16 18:40:05 · 199 阅读 · 0 评论 -
C++命令模式解析
命令模式定义:命令模式本质上,就是将命令的调用和执行分开,个人理解,简单的来说,就是每天起来列一天的计划任务,然后在白天的时候,把这些任务给做完,这个就是非常生活化的命令模式,易于理解/实际工作运用场景,在客户端游戏开发过程中,例如游戏中有自动寻路的功能,如果用户点了自动寻路,它在客户端内部的操作是 先将自动寻路的动作加入到命令当中,自动寻路里面有先找到目的地、规划路线、执行走条等一系列命令,这些通过设置命令的调用顺序,执行起来就特别方便,也是使用命令模式的一种方向。实例代码://人的基类=-.原创 2020-09-14 10:16:42 · 3095 阅读 · 5 评论 -
C++状态模式
状态模式个人理解:绑定状态-------->执行状态的某个动作代码代码层面的话:状态基类:提供相关的base纯虚函数或者虚函数方法:子类实现各自的base方法-----》 另外调用的类,需要可以设置状态的方法:绑定对应的状态类,实现对应的方法=------using namespace std;// 状态的接口类class State{public: virtual void CurState() = 0;};class EatState:public State{publ原创 2020-09-11 10:30:18 · 497 阅读 · 0 评论 -
RegisterHotKey在XP系统下的运行问题
参考:https://stackoverflow.com/questions/6103059/registerhotkey-only-working-in-windows-7-not-in-xp-server-2003RegisterHotKey函数WINUSERAPIBOOLWINAPIRegisterHotKey( __in_opt HWND hWnd, __in int id, __in UINT fsModifiers, __in UINT vk); .原创 2020-08-10 18:12:30 · 271 阅读 · 0 评论 -
C++实现复制文本粘贴文本功能
复制功能、参考链接:https://www.cnblogs.com/xuan52rock/p/6061155.html粘贴功能参考链接:https://bbs.csdn.net/topics/390008354?list=1963771整合代码如下:/** * 复制功能 */BOOL CopyToClipboard(const char* pszData, const int nDataLen){ if(::OpenClipboard(NULL)) { ::EmptyClipboard原创 2020-08-06 17:08:34 · 4169 阅读 · 2 评论 -
LeetCode-----旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法:c.原创 2020-07-24 14:21:11 · 180 阅读 · 0 评论 -
LeetCode-----斐波那契数列
题目:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 来源:力扣(LeetCode)链接:https://leetcode-cn.c.原创 2020-07-22 17:39:23 · 314 阅读 · 0 评论 -
LeetCode-----重建二叉树
知识点:---- 二叉树(遍历顺序)前序遍历:中—左----右中序遍历:左—中----右后序遍历:左—右----中题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。解法:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ..原创 2020-07-22 14:49:20 · 357 阅读 · 0 评论 -
LeetCode-----反转链表
题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)解法·1.垃圾解法:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: vector<int.原创 2020-07-22 09:33:09 · 158 阅读 · 0 评论 -
WinXp系统中没有ChangeWindowMessageFilter这个函数
因为ChangeWindowMessageFilter在User32.dll中,然而xp系统中user32.dll中没有这个函数解决方案:。。。注释掉这行代码。。原创 2020-07-17 18:10:11 · 398 阅读 · 0 评论 -
Chrome 插件开发与本地程序交互流程
Chrome 插件开发与本地程序交互流程一、 将本地程序写入注册表可以采用bat的方式写入注册表REG ADD “HKCU\Software\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo” /ve /t REG_SZ /d “%~dp0com.google.chrome.example.echo-win.json” /只需要改动此处的json文件即可,其中该json文件与bat文件 在同级目录该json格式如下原创 2020-07-10 09:30:58 · 3973 阅读 · 0 评论 -
Windows句柄和指针的区别
正好看了一本书,有介绍到 觉得写的挺好的 分享原创 2020-07-05 17:47:41 · 234 阅读 · 0 评论 -
C++引用与指针的区别
1.初始化要求不同。引用在创建的同时必须初始化。即引用到一个有效的对象。指针在定义的时候不必初始化。可以在定义后面的任何地方重新赋值。2.可修改性不同。引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用。而指针在任何时候都可以改变为指向另一个对象。给引用赋值并不是改变它和原始对象的绑定关系。3.不存在NULL引用。引用不能使用指向空值的引用,它必须总是指向某个对象。而指针则可以是NULL,不需要总是指向某些对象,可以把指针指向任意的对象。更加灵活,不易出错。4.使用引用的..原创 2020-07-05 16:33:47 · 480 阅读 · 0 评论 -
C++中内联函数和宏定义的区别
1.内联函数在编译时展开,宏在预编译时展开2.在编译的时候,内联函数可以直接被镶嵌在目标代码中,而宏只是一个简单的文本替换。3.内联函数可以完成诸如类型检测,语句是否正确等编译功能,宏就不具有这样的功能。4.宏不是函数,inline函数是函数,5.宏在定义时,要小心处理宏参数,否则容易出现二义性,而内联函数定义时不会出现二义性。*补充:内联函数本质上 就是空间换时候,代码替换------ 减少调用的开销-------增加代码量----内存增大。...原创 2020-07-05 16:21:02 · 1166 阅读 · 0 评论 -
SizeOf相关代码
#include <iostream>#include <string>#include <algorithm>#include <vector>using namespace std;// 遍历输出void PrintVec(const vector<int>& vec_){ auto i_ = vec_.begin(); while(i_ != vec_.end()) { cou原创 2020-07-05 16:06:17 · 355 阅读 · 0 评论 -
STL中sort排序的简单使用
测试int的sort功能#include <iostream>#include <string>#include <algorithm>#include <vector>using namespace std;// 遍历输出void PrintVec(const vector<int>& vec_){ auto i_ = vec_.begin(); while(i_ != vec_.end()) {原创 2020-07-04 21:43:16 · 299 阅读 · 0 评论 -
如何判断lib是/md or /mt编译的
如何判断lib是/md or /mt编译的使用dumpbin.exe 打开命令行输入 dumpbin.exe /directives xxx.lib其中 /DEFAULTLIB 显示是哪一种方式编译其中MSVCRT 表示MD编译MSVCRTD 表示MDd 编译LIBCMT 表示 MT编译LIBCMTD 表示MTd编译...原创 2020-06-29 10:45:03 · 2473 阅读 · 0 评论 -
全网唯一C++调用由com组件生成的dll教程
首先是一般的dll调用 可以参考这个博文https://blog.csdn.net/Giser_D/article/details/89677441一般的dll结构如下(放在depends.exe软件下查看):这类dll的特点是不需要注册dll,直接就可以查看内部的函数 进行调用操作。使用上述的博客的方法 即可调用dll本文主要针对于由com组件生成的dll 要如何使用com组件生成的dll 结构如下:由这四个函数组成调用方式:1.首先创建MFC-VS项目–点击完成–右.原创 2020-06-22 16:54:43 · 1695 阅读 · 8 评论 -
记录一下腾讯视频桌面windows客户端面试(一面)
由于疫情原因,一面是视频面试。抱着看一下大厂的面试 到底是怎样的,就进行了这次面试首先是简单的自我介绍,由面试官先介绍,然后说了一下腾讯视频windows客户端开发的相关要求,win32编程,c++基础,主要是维护开发相关。然后后面就是让我先介绍一下,我做的项目,后面我也简单的说了一下,做的项目和运用的框架,主要是qt和redm框架。然后后面开始问了,这里进入重点1.qt的相关机...原创 2020-03-20 17:13:12 · 4219 阅读 · 6 评论 -
QT配置文件类封装
很多桌面软件在打开的时候,都有记住密码等选项,而且在没联网的情况下也能读取,这个是因为,它把配置信息写在本地,每次打开之前先读取本地的配置信息,即可加载相关配置,那么在这种情况下,可以封装一个配置类,方便我们以后复用。先看一下本地配置信息大概的结构这是Windows文本是随机的一个本地配置信息可以看出,配置文本结构主要由[属性名]和键=值的方式构成然后基本是以.ini为后缀的形式...原创 2020-03-06 17:17:54 · 1361 阅读 · 2 评论 -
Windows进程管理类封装
头文件#include <Windows.h>#include <iostream>using namespace std;class ProcessMgr{public: ProcessMgr(); ~ProcessMgr(); static ProcessMgr* GetInstance(); // 判断是否进程存在 // @params...原创 2020-03-03 15:02:08 · 385 阅读 · 1 评论 -
C++监控注册表信息
首先,监控注册表信息的作用在于防止他人篡改数据,因为多数木马程序都是通过修改注册表信息来对电脑进行攻击,在WindowsAPI中,系统提供了RegNotifyChangeKeyValue这个函数方法来实现对注册表相关信息的监控。RegNotifyChangeKeyValue ( __in HKEY hKey, __in BOOL bWatchSubtree, __i...原创 2020-02-28 11:26:46 · 1989 阅读 · 2 评论 -
Windows下设置开机自启动的方式(手动/C++代码的形式)
Windows下设置开机自启动的方式(手动/C++代码的形式)Windows下自启动相关软件的原理首先讲解一下Windows下是如何会实现开机自启动相关软件的原理,由于Windows本身有注册表机制,所谓注册表,可以理解其为Windows自带的数据库。在win+r输入regedit即可查看如图所示,注册表当中基本上都是以key-value的形式进行保存。然后Windows在系统打开...原创 2020-02-25 14:21:40 · 4047 阅读 · 12 评论