使用QProcess来启动程序,下面使用同步方式来启动: 1. 准备好工作目录,将需要运行的程序放在工作目录下 2. 准备启动的命令行(如果有参数,要拼装好参数) 3. 设置工作目录(很重要) 4. 启动命令 5. 等待执行完成 6. 读取输出结果 代码演示了调用uploadimg.exe工具来...
golang上传图片文件
使用golang来实现图片的上传,服务端我们使用gin框架来接收保存图片 服务端 服务端路由 router.POST("/uploadimage", controller.UploadImage) 服务端保存上传的图片 这里设置了一个简单的认证,上传文件的时候需要带一个pass字段里面存储了需要认证的字符串...
golang读取excel文档转换成json
我们是使用github.com/tealeg/xlsx库实现的,用法比较简单: 1. 读取excel文件 2. 遍历sheets 3. 在每个sheet中再遍历每行 当然这个库还可以写入excel文档这里就不介绍了,有兴趣的可以去github上查看。 代码如下: package main import ( "encoding/json" ...
ntscreenshot截图工具马赛克功能实现
截图后如果有一些敏感信息不想被别人看到,可以使用马赛克工具将其涂抹掉,用法是点击马赛克图标后按下鼠标左键涂抹敏感信息。 实现原理 一张图片可以认为是有很多个小色块组成,假如每个色块是正方形的并且宽度是blockWidth,那么整张图片x,y轴分割imageWidth/blockWi...
MacBook突然没网
MacBook一段时间没用了,之前升级过系统今天用的时候没网了。我是用以下方法解决的: 1. 打开终端,进入 cd /Library/Preferences/SystemConfiguration 2. 删除如下文件,不放心的请先备份一下 com.apple.airport.preferences.plist com.apple.wifi.message-t...
golang 日志文件切割、保存最大文件数
组合使用logrus和lumberjack库能达到我们的目的。 如:日志单个文件最大10M,最多保存30个日志,代码如下: package Logger import ( "io" "os" "path" "github.com/sirupsen/logrus" "gopkg.in/natefinch/lumberjack.v2" ) var ( logger = logru...
win32应用程序内存不足
当在windows环境运行32位应用程序时,由于32位的限制最大分配的内存只有2G。要想使用更大的内存正常情况下编译为64位就可以了。 但是如果程序依赖的库比较多,其他库也需要编译成64位,这样做起来比较麻烦。下面介绍一个更简单的做法,还是32位程序,只需要修改工程属性重新编...
golang 单例模式
单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 要保证线程安全 package main import ( "fmt" "sync" "time" ) type Singleton struct { } var singleton Singleton va...
golang 中介者模式
中介者模式是一种行为设计模式。此模式是创建一个中介对象,以防止对象之间的直接交互,从而避免它们之间的直接依赖关系。 一个很好的中介模式的例子是铁路系统平台,两列火车之间是相互独立的,站长充当调停者,使站台仅对其中一列列车可用。列车通过站长交互,站长维持着等候...
CentOS7 systemctl service
CentOS7创建服务,下面展示了两个简单的例子,这样就可以用systemctl命令启动、停止、重启进程以及查看进程状态。 如: systemctl start gonetdisk systemctl stop gonetdisk systemctl status gonetdisk 配置简介 [Unit]区块通常是配置文件的第一个区块,用来...
CentOS7 debuginfo-install
CentOS7 debuginfo-install 允许debuginfo源 vim /etc/yum.repos.d/CentOS-Debuginfo.repo 将enabled改为1 安装debuginfo-install yum install glibc-debuginfo yum-utils 安装调式信息包和依赖 debuginfo-install libgcc-4.8.5-44.el7.x86_64 ...
CentOS7 U盘安装 No Caching mode page found
[sda] No Caching mode page found [sda] Assuming drive cache: write through U盘安装CentOS7的时候出现上述错误的解决方法。 此时会卡在这里,不要着急耐心等待,超时会输出错误信息(10分钟左右),等待可以输入命令的时候: ls /dev/sd 输出如下,每个机器的电...
CentOS6 yum The requested URL returned error: 404 Not Found
CentOS6不再维护了,目前机器需要更换yum源,地址:https://vault.centos.org/ CentOS 6 is now End of Life and there are no more updates Red Hat have pulled the plug on RHEL 6.x as of Nov 30th 2020 and as a result CentOS 6 is now a dead version. The ...
jemalloc C++实践
jemalloc是一种通用的malloc(3)实现,优点是避免内存碎片和可伸缩并发支持。 下载源码 wget https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2 解压 tar -jxvf jemalloc-5.2.1 编译安装 cd jemalloc-5.2.1 ...
C++11 实现defer
defer函数功能还是蛮常用的,它是在出当前作用域的时候执行,用来回收资源非常合适,可惜C++里面没有,以前实现起来都比较别扭现在用C++11实现后看起来简单多了。 此defer内部lambda表达式捕获的是引用; 同一个作用域内先定义的defer后执行; 使用define以及xy连...
微信本地图片格式转化
PC端微信收到的图片存储在本地,我们可以打开微信的设置->通用设置->文件管理->打开文件夹,在FileStorage/Image日期目录下找到图片文件,但是它经过了简单的加密并且后缀为.dat。 通过下面这个算法可以将dat文件还原成原始图片,目前支持jpg,gif,png三种格式,其他格式应该...
golang vscode launch.json配置
每次调试运行都要先打开main.go然后在菜单里点击Run->Start Debugging或者F5比较麻烦,主要是每次都要定位了main.go文件,这样当我编辑完其他文件后,都要切换一下才能运行。 下面增加一下Launch.json配置就可以直接点击左侧的debug按钮运行了,在Launch菜单下的Add Con...
gin多模板、模板嵌套使用方法
在做一个web应用的时候,通常多个页面会共用同一个模板,只是每个页面的内容不同。如网页的导航栏、菜单栏、footer是共用的。我们写代码的时候也只需要写一个主模板页面frame.html,内容空出来给具体的页面来实现,如:主页index.html,文章页面post.html,错误页面error.html等等,...
Qt 正确的显示窗口
显示窗口看起来很简单,但是有一些细节要注意的。通常有下面几种情况需要展示一个窗口: 1. 第一次创建后展示 2. 窗口最小化 3. 窗口不在最前面 4. 窗口销毁后再次创建(同第1种) 注意: 这里说的不是通过任务栏来激活窗口,而是通过用户设计的按钮或者菜单来打...
golang接口型函数作用
在我们使用golang写http服务的时候通常会使用http.Handle来注册pattern对应的Handler,其实这里就使用到了接口型函数,源码定义如下: type Handler interface { ServeHTTP(ResponseWriter, Request) } type HandlerFunc func(ResponseWriter, Request) func (...