如果你正在学习 C++ 或从事 C++ 开发,那么你一定使用过头文件(header file)来实现代码的模块化。然而,在 C++ 早期版本中,头文件带来了很多问题,比如编译速度慢、头文件依赖复杂等等。因此,在 C++20 中引入了一个新的特性...
Python的几种函数参数类型
位置参数,根据参数的传入顺序来赋值 def add(a, b): return a + b 默认参数,n就是默认参数,调用函数的时候可以不传 默认参数必须写在后面且指向不变对象 def power(a, n=2): s = 1 for ...
Effective Python
读Effective Python的一些练习和记录 关于命名的建议 PEP 8 建议采用不同的方式来给 Python 代码中的各个部分命名,这样在阅读代码时, 就可以根据这些名称看出它们在 Python 语言中的角色。 函数、变量及属性用小...
Mac、linux安装brew终极办法
安装brew的时候是不是经常碰到连不上或者下载缓慢的情况,下面方法可以帮你解决这个问题: 在终端粘贴如下命令回车就可以了,注意执行后的命令行提示,可能要输入开机密码 /bin/zsh -c "$(curl -fsSL https://gite...
IE获取元素样式
IE浏览器获取元素样式,通过正常方式获取不了。 这种方法获取不了: CComPtr<IHTMLStyle> pHtmlStyle; if (!FAILED(m_pHtmlElement->get_style(&pHtmlStyle)) && pHtmlStyle != NULL) { if (!FAIL...
QProcess 7z.exe 解压进度
我们使用一个简单的方法来实现,使用7z提供的sdk实现太麻烦了。 7z命令行 使用7z的命令行来解压要获取进度必须要读取到stdout里面的进度信息,关键参数是:-bsp1,只有这样才能在readyReadStandardOutput信号中不断读...
降权启动应用
如果应用是管理员权限,它再去启其他进程时也会是管理员权限,那么怎样降权呢?让它以普通用户的权限来启动,下面代码提供了一种实现方法。 注意!!! WTSQueryUserToken在普通会话下调用总是失败,但是在session 0上的...
beast websocket demo
client: // client.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // include <boost/beast/core.hpp> include <boost/beast/websocket.hpp> include <boost/asio/connect.hpp> include <boo...
隐式共享的QJsonArray对象,非const遍历会导致一次内存拷贝
隐式共享的QJsonArray对象,非const遍历会导致一次内存拷贝 直接看一个例子,先初始化一个大的arr,然后将其赋值给arr2和arr3,此时我们观察对象的d指针所指向的内存。 arr2和arr指向的内存是一致的,arr3和obj["arr"]...
visual studio修改堆栈保留大小和提交大小
如果程序中使用的堆栈超过1M(默认)你就需要进行这个设置,但是设置太大又会造成虚拟内存过高。如果你明确的知道哪一个线程使用的 堆栈多高,可以只针对那个线程进行设置,这样不会影响到整个程序。 Qt线程设置堆栈大小...
bat常用命令
当前所执行bat文件的路径 cd "%~dp0" 设置变量 set DIR=%~dp0 使用变量,注意路径中可能有空格要加双引号 %DIR% 强制杀死进程 taskkill /f /im "进程名" 删除文件 del "文件路径...
golang 下载大文件进度
使用io.Copy将下载的部分内容不断写入文件,重载io.Reader的Read函数,使用Read读取数据和大小,通过http的ContentLength获取total大小。 package goutil import ( "io" "net/http" "os" ) type ChunkRe...
boost命令行解析
对于一些工具程序使用命令行是非常普遍的,也是很方便的。但是原始的main函数只提供了一个简单的参数使用方法,要想提供一些 更丰富的命令交互还需要自己来解析。 boost有提供这个功能用起来还是蛮方便的,下面就是简...
Qt怎样将gif作为窗口背景
很多窗口会在背景展示一些动态的信息,此时用gif是比较合适的,Qt窗口使用gif作用背景步骤如下: 1. 定义一个movie对象 QScopedPointer<QMovie> movie_; 2. 设置movie movie_.reset(new QMovie(path)); ...
卸载程序——自删除
问题 卸载程序在卸载的时候怎么把自己给删掉 分析 我们知道在删除文件的时候,这个文件不能被打开,如果是程序那程序不能在运行中。 通常卸载之前我们要求用户先关闭运行中的程序,或者强制杀掉进程,否则删除文件...
Python 更新xml文件非常方便
以前没怎么用过Python,想实现一个简单的读写xml功能,网上查找了一下相关的库,有点眼花缭乱有的用起来也不方便。还好最终找到了,如果你也有这样的需求可以试一下下面的方法。 xml原文 <?xml version='1.0' encod...
golang 生成目录的check list文件并校验目录
目的是将当前可执行程序平级的某个目录生成check list文件,表明是文件还是目录,如果是文件生成md5值。还可以根据check list文件来判断目录里面的内容是否完整,如果是目录就判断目录是否存在,如果是文件就比对md5值是否...
多个Qt程序共享公共库
使用Qt框架编写的GUI应用程序必须要带上常用的几个Qt动态库和插件,如果有多个独立的Qt程序,他们不是放在同一个目录下,那么这些通用的Qt库必须每个程序都提供一份,这样会导致整个产品安装包较大。 目的 我们的目的...
boost类型转换异常捕获
使用boost做类型转换出错会抛出异常,这里针对这种情况做了简单封装,内部捕获异常,支持默认值、浮点数转换。 pragma once include <string> include <iomanip> include <boost/lexical_cast.hpp> include "log...
datetime封装常用功能
datetime支持windows,linux,异常安全,封装了常见的转换函数,精确到毫秒。 支持常见日期的计算、修改、比较。 pragma once include <string> include <ctime> class DateTime { public: static Da...