qt/qml plugin系统
参考文档:https://www.jianshu.com/p/625057deaeac
QT中的插件分类:
纯C++/Qt插件;
开源的纯QML插件(qmldir);
隐藏源码的QML插件;
包含C++的QML插件;
纯C++/Qt插件开源的纯QML插件(qmldir)实际是将源码目录直接打包发布。分为带url和不带url前缀的QML插件,import:
12import QtQuick 2.12 // 不带urlimport QtQuick.Control 2.12 // 带url
如果插件qml文件存在多级目录,使用.号将目录导入。
以不带url前缀的为例。
创建QML插件创建文件夹DemoPlugins/,再创建插件qml文件:DemoPlugins/CRect.qml
12345678import QtQuick 2.12import QtQuick.Controls 2.12Rectangle { width: 100 height: 100 color: "red"}
在qml同级目录创建qmldir文件(Dem ...
window下cmake的debug和release
Windows上,习惯将debug模式下生成的动态库名后缀添加D 以作和release区分。
debug和release的动态库是否可以混用现象使用一些第三方的dll,比如opencv,会分别生成debug和release的dll,在exe中必须要引用指定版本的dll,不能混用,否则会出错;
但是还有一些第三方的dll,比如halcon,只提供给用户release的dll,用户的debug版和release版的exe都可以引用此dll。
原因比如debug的exe调用release编译生成的dll,接口函数的参数如果使用std::vector或者std::string之类的东西,肯定会崩。因为stl在release和debug下实现不同。std::string在debug和release环境中的内存大小是不一致的。 如果混用,会出现内存奔溃现象。
结论不含stl库的debug动态库和release动态库在debug或release项目中都可以使用;
含有stl的debug动态库和release动态库在项目中不能混用,debug项目必须用debug库,release项目必须用relea ...
cpp时间以及计时
c++中时间记录以及代码计时问题
spdlog-guidance
spdlog记录日志...
linux-tcp
来源: https://new.qq.com/rain/a/20200615A0589700
前言TCP 性能的提升不仅考察 TCP 的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。
TCP 协议是由操作系统实现,所以操作系统提供了不少调节 TCP 的参数。
Linux TCP 参数如何正确有效的使用这些参数,来提高 TCP 性能是一个不那么简单事情。我们需要针对 TCP 每个阶段的问题来对症下药,而不是病急乱投医。
接下来,将以三个角度来阐述提升 TCP 的策略,分别是:
TCP 三次握手的性能提升;
TCP 四次挥手的性能提升;
TCP 数据传输的性能提升;
本节提纲正文01 TCP 三次握手的性能提升TCP 是面向连接的、可靠的、双向传输的传输层通信协议,所以在传输数据之前需要经过三次握手才能建立连接。
三次握手与数据传输那么,三次握手的过程在一个 HTTP 请求的平均时间占比 10% 以上,在网络状态不佳、高并发或者遭遇 SYN 攻击等场景中,如果不能有效正确的调节三次握手中的参数,就会对性能产生很多的影响。
如何正确有效的使用这些参数,来提高 TCP ...
c++20新特性
C++20(C++编程语言标准2020版)将是C++语言一次非常重大的更新,将为这门语言引入大量新特性。
doxygen注释规范
doxygen的注释规范
ubuntu工具介绍与使用
ubuntu下相关工具,使用更简单