自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 DNS 解析流程

DNS域名解析流程,以及windows & linux系统下清除DNS缓存的方法

2022-09-17 15:51:04 787 1

原创 go module 导入本地嵌套包报错解决办法

现在换了一份工作,虽然还是做IT,但是与原来的行业毕竟不一样,有很多新东西需要学习。现在,每一天都很充实,所以很久没有更新博客了(给自己的懒惰,找个借口)好了,言归正传,聊聊今天的主题------go module 导入本地嵌套包报错解决办法。其实网上有很多关于go module 导入本地包的教程,而且都写的挺好的(给大家推荐一篇我认为写的挺好的文章,https://blog.csdn.net/taoerchun/article/details/104827702)。这里我就不再重复这些内容了。今天,我主

2022-04-13 17:12:07 1378

原创 beego mysql Can‘t create more than max_prepared_stmt_count 解决方案

问题出现项目上线之初,一切表现正常。运行一段时间后,报一项错误:Error 1461: Can’t create more than max_prepared_stmt_count statements (current value: 16382)一时间,让人束手无策。只有通过更改预处理值上限,临时解决(线上问题,需要快速解决啊)。set global max_prepared_stmt_count = 1048576将预处理值改大,临时把线上问题解决(但是,不久后将会再次出现,所以真的很

2020-09-17 11:05:22 1956

转载 Nginx URL重写(rewrite)配置及信息详解

Nginx URL重写(rewrite)配置及信息详解URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中Nginx URL重写(rewrite)介绍和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持rewrite是实现URL重写的关键指令,根

2020-09-01 16:50:46 749

原创 缩减Golang程序体积

缩减Golang程序体积通常情况下,Golang编译出来的程序体积都比较偏大。主要原因是Golang是静态编译–把它所依赖的库通过静态连接方式,打入可执行文件包中。这样的做法好处是,减少平台相关性,缺点也比较明显–程序体积较大。那么有什么办法减小golang程序体积呢?减小程序体积方式1.在编译命令中添加 -ldflags="-s -w"参数。例如:go build -ldflags="-s -w" -a -v -o xxx main.go原理:-w关闭DWARF调试信息:您将无法在二进制文件上使

2020-08-31 13:49:38 2633

原创 线上调试动态库 c++ 代码 经验分享

在测试环境中,不能模拟出所有的生成环境。即使你的程序在测试环境中跑的很顺畅,并且你已经模拟大多数生产环境中可能出现的状况,并为之提供了解决方案。但是,你不能保证程序在生产环境中不出问题。更糟糕的是,生产环境出了问题,你还不能再测试环境中模拟出来。所以,要是能在生产环境中调试最好了,实在不行的话能提供生产环境中程序崩溃的信息也是好的。首先,能拿到生产环境程序的崩溃信息,最好的方式就是DUMP啦。网上有很多这方面的教程,这里就不再赘述。但是不是所有程序都能同DUMP文件这种方式捕获到有用的调试信息。比如,通过

2020-08-31 13:14:20 333

原创 c++调用COM组件的坑

c++调用COM组件的坑最近在工作中,需要用到COM组件来完成任务。再调用过程中,遇到一些平常容易忽略的错误,记录一下,避免自己再犯同样的错误。首先来看一段代码:// 查找桌面文件视图bool FindDesktopFolderView(REFIID riid, void **ppv){ CComPtr<IShellWindows> spShellWindows; HRESULT hr = spShellWindows.CoCreateInstance(CLSID_ShellWi

2020-08-12 16:10:50 987

原创 c++编程 设置桌面壁纸以及设置壁纸失效的解决办法

c++编程 设置桌面壁纸以及设置壁纸失效的解决办法最近项目中需要一个小工具来设置桌面壁纸,于是想自己尝试用c++写一个。刚开始,发现COM组件IActiveDesktop 可以设置壁纸。代码如下:class CCoInitialize {public: CCoInitialize() : m_hr(CoInitialize(NULL)) { } ~CCoInitialize() { if (SUCCEEDED(m_hr)) CoUninitialize(); } operator HRESUL

2020-08-06 16:31:22 1682

转载 MySQL如何利用索引优化ORDER BY排序语

本文为转载文章,欢迎访问原文原文链接:https://blog.csdn.net/ryb7899/article/details/5580624MySQL如何利用索引优化ORDER BY排序语MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度。MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作。通过索引优化来实现MySQL的ORDER BY语句优化1、ORDER BY的索引优化。如果一个SQL语句形如:S

2020-07-17 14:18:23 110

原创 mysqldump 使用 问题记录

mysqldump 使用 问题记录报错一语句如下:mysqldump -h'192.168.11.31' -P3306 -uroot -proot --no-create-info --no-create-db --complete-insert --replace --skip-add-locks --skip-comments --skip-triggers --databases testdb > 2020-06-03 22:54:20_自动备份.sql报错如下:mysqldump

2020-06-04 17:34:35 307

原创 docker logs 二进制数据格式介绍以及解析

docker logs 二进制数据格式介绍及解析为什么需要了解docker logs二进制数据格式docker 以特定格式的二进制数据接口,提供docker logs。从该接口中获取的日志数据包括,输出到标准设备的日志和输出到标准错误输出设备的日志。如果我们需要按照我们想要的方式,来获取我们需要的日志信息,就必须要了解docker logs 二进制数据格式, 才能正确的反序列化docker格式的二进制数据。docker logs 二进制数据格式是怎样的先上一张docker logs二进制格式图片

2020-05-27 16:10:35 328

原创 c++ API 设置桌面图标 自动排列图标 网格对齐 snaptogrid

c++ API 设置桌面图标 自动排列图标 网格对齐 snaptogrid方式一通过调研宏ListView_SetExtendedListViewStyleEx,来实现控制自动排列图标&网格对齐的开关// 网格对齐int SnapToGrid(int bAlign){ int errorNum = 0; HWND hwndParent = ::FindWindow(Progman, ProgramManager); if (nullptr == hwndParent) { e

2020-05-23 14:33:21 2212 4

原创 c++ 移动桌面图标

c++ 移动桌面图标之前分享过一篇关于移动桌面图标的文章。那种通过SendMessage函数来改变图标位置的方式,有一些缺陷(比如不能通知iconcache.db 及时刷新等)。后面有继续寻找其他改变桌面图标位置的API。并且能及时通知iconcache.db及时刷新桌面图标信息。好了,话不多说,直接上代码:// 处理COM组件类,方便COM组件的初始化以及释放资源class CCoInitialize {public: CCoInitialize() : m_hr(CoInitialize(N

2020-05-23 14:01:07 1676 4

转载 mongoDB子模块GridFS

申明版权声明:本文为转载文章,欢迎访问原文原文链接:https://blog.csdn.net/Xue_zenghui/article/details/100982798GridFSMongoDB的一个重要子模块,可基于MongoDB来持久存储文件,并且支持分布式存储和读取。持久存储:对应瞬时数据如内存,指保存到数据库中,能持久保存。分布式存储:将数据分散地存储于多个位置。存在的意义MongoDB采用BSON格式存储数据,对数据的大小限制为16M,但是在实际的系统开发中,上传的图片或文件可能

2020-05-11 10:48:09 280

原创 golang EXE程序添加图标和详细信息(版本号,版权,公司信息等)

golang EXE程序添加图标和详细信息(版本号,版权,公司信息等)为什么要添加图标和详细信息作为桌面程序,有一个图标,显得更正式一些。详细信息有版本号方便做版本识别。算了,编不下去了。不管那么多,反正别人有这些,你就应该有这些(领导这样说的)。golang 作为一个后端语言,对windows 界面编程支持不是那么友好,直接添加图标和详细信息有一定难度。还好有第三方库–GoVersionIn...

2020-05-07 18:39:16 5424 2

原创 获取windows 桌面网格大小 API

改变桌面图标位置,需要准确计算网格位置。影响网格位置的因数很多,比如注册表的HKEY_CURRENT_USER\ControlPanel\Desktop\WindowMetrics目录下的,IconSpacing,IconVerticalSpacing。还有图标本身大小(大中小图标),title行数,title字体,网格间距(默认8px)等等。而且,目前还没有找到这些因数与网格位置之间的计算公式(...

2020-04-28 10:55:55 621

原创 golang windows程序获取管理员权限(UAC )

在windows上执行有关系统设置命令的时候需要管理员权限才能操作,比如修改网卡的禁用、启用状态。双击执行是不能正确执行命令的,只有右键以管理员身份运行才能成功。为解决此问题,最终找到一个简单的方法,双击也能执行成功了。过程如下:1> go get github.com/akavel/rsrc2> 把nac.manifest 文件拷贝到当前windows项目根目录3> r...

2020-03-24 13:59:50 6725 17

转载 BTree和B+Tree详解

原文地址:https://www.cnblogs.com/vianzhang/p/7922426.html本文为转文章,如有侵权立即删除。前言B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTr...

2019-12-20 14:33:48 128

转载 mysql索引实现原理

本文主要介绍1.Myisam引擎(非聚集索引)Innodb引擎(聚集索引)什么是索引:索引是一种高效获取数据的存储结构,例:hash、 二叉、 红黑。Mysql为什么不用上面三种数据结构而采用B+Tree:若仅仅是 select * from user where id=100 , 上面三种算法可以轻易实现,但若是select * from user where id<6 ,...

2019-12-20 11:20:32 114

原创 parsing go.mod: unexpected module path "golang.org/x/sys"

最近项目(golang 编写),改用mod模式来管理第三方代码库。在切换过程中,编译原来的代码遇到了—parsing go.mod: unexpected module path “golang.org/x/sys” 错误。但是切换代码管理方式之前,是能编译通过的。开始以为是github.com/golang/sys代码库或者golang.org/x/sys代码库没有down下来导致的。后来开启代...

2019-12-19 15:23:28 3634

原创 移动桌面图标 F5刷新 图标重新排列问题解决方案

最近在做桌面图标管理小工具,遇到一个问题:把图标按照预先设定好的位置移动好后,F5刷新桌面(或右键->刷新)图标又还原了。。。最开始,我想了一个办法:移动桌面图标以后,就给桌面窗口发一个禁止重绘的消息,这样图标就不会还原啦。但是在实际环境中发现,会带来另外一个问题:凡是在桌面上面呈现出来的画面,都不会被清除。这明显不符合需求了,遂放弃这种方式。后面搜索到一篇文章,讲到重新设置一下桌面工作...

2019-12-14 16:14:45 1553

原创 windows7 设置png格式图片为桌面壁纸

windows7 设置png格式图片为桌面壁纸项目中有一个小需求----自动设置壁纸。按理说,这种小需求理论上都很容易啦,没有必要做笔记了。而在实际开发过程还是遇到了各种问题。当然这是由于windows不同版本之间的兼容性引发的问题。最开始我通过修改注册表的“Control Panel\Desktop\Wallpaper”值,来实现更换桌面壁纸。jpeg图片格式,在win7与win10下面,都...

2019-11-29 18:19:40 2546

原创 c++ 控制系统图标显示隐藏

现在项目中有这样一个需求:根据不同情况,控制特定图标显示/隐藏。对应普通图标来说,还是比较容易实现的。但是系统图标,是打开虚拟目录,没有打开目标程序,也没有具体的文件目录(因为是虚拟目标),所以新创建一个系统图标不太现实。我在网上找了一段时间,也没有找到相关解决方案。后来经同事提醒,可以尝试通过修改注册表的方式来实现类似功能。于是,开始尝试修改注册表配置,果然可以!!! 下面粘贴出代码,需要的童鞋...

2019-11-08 13:34:43 895

原创 cpp 移动桌面图标位置

最近项目需要做一个按照指定位置摆放桌面图标的功能。再网上找了很多示例,都没有成功移动图标。看来拿来主义,在这里不适用了啊。没办法,只有自己来了。结合网上搜索的资料,自己捣鼓捣鼓,终于调试通过了,代码如下:// 移动指定图标位置// iconname : icon图标名称// x: 图标x轴值// y: 图标y轴值void MoveIconPos(char* iconname, int ...

2019-11-05 16:09:45 531

原创 ReadProcessMemory 报错 299 解决办法

最近在做一个小项目,其他需要读取其他进程空间的数据。用到了ReadProcessMemory() 系统函数。在调试过程中,始终无法正常获取数据。通过,调用GetLastError()函数后,得到错误码为:299 .查询了299错误码的意义是,“〖299〗-仅完成部分的 ReadProcessMemoty 或 WriteProcessMemory 请求。”于是,尝试着把接收缓冲区改大,结果还是一样...

2019-10-31 14:34:32 6929 9

原创 使用cgo的程序如何交叉编译

背景最近在研究读取配置相关的开源项目–libconfig。libconfig项目目前仅支持c版本和c++版本。我们当前项目是用golang编写的,于是就想通过cgo的方式调用libconfig里面的功能。刚开始一切顺利,分别编译libconfig的windows版本库和linux版本库;分别在windows环境和linux环境下写DEMO程序,这些都没有任何问题。问题出现由于,我们开发环境在...

2019-10-22 11:26:29 4190 7

原创 could not launch process: Process XXX has exited with status XXXX

我们现在需要在golang项目中,调用c库函数。对,没错,这里是使用cgo调用c库封装的DLL文件。当我们经历千难万险排除编译问题,即将进入调试阶段的时候,goland报“could not launch process: Process 7192 has exited with status 3221225781”错误。当时的我,一脸懵逼!编译没错,链接也没有错误,就是不能调试,不能运行!经过...

2019-10-21 16:00:33 2870 2

原创 golang 如何运用 Docker Engine SDKs 开发应用

前言Docker 提供了包含操作Docker daemon API接口的SDK,目前有GO版本和python版本。通过SDKs你可以很容易的构建出你的Docker 应用。如果你对Go和python都不熟悉的话,可以直接调用Docker Engine API(通过http方式)。安装SDKs官网上面说通过以下命令可以安装golang版本的SDK:go get github.com/docke...

2019-10-16 15:04:09 480

原创 powershell.exe": executable file not found in %!P(MISSING)ATH%!:(MISSING)出现原因及解决办法

powershell.exe": executable file not found 出现原因及解决办法有些时候,在开发环境跑得很流畅的程序,一但拿到真实客户环境,就会出现各种各样的问题。我现在就遇到了这类似问题。这个程序是想通过powershell去启动其他程序,也没有什么高深的技术。很快,就开发出来,在测试环境运行,没有任何问题。但是,放到真实客户环境后,就报错:powershell.ex...

2019-10-14 15:12:33 4650

原创 golang程序添加版本号

golang程序添加版本号这段时间项目经常发布版本,导致我们版本管理混乱。特别是在真实环境上面,没有了版本控制软件协助版本管理,我们无法确认程序到底是新版本还是旧版本。这给我们排查问题带来了很大困扰。于是,我就想给程序本身打上版本号,通过程序就可以看到程序是新版本还是旧版本了。查看资料发现golang不能像C++那样通过宏定义方式来设置版本号,但是可以在build 时添加参数-ldflags ...

2019-10-11 13:16:50 3193

原创 golang版 grpc源码浅析

项目中需要用到grpc作为通信框架,但是在我们项目组中没有一个人对这个grpc有深入的理解。只知道用了GRPC后,调用远程函数就像调用本地函数一样方便,能够像处理同步编程一样处理异步编程。至于,他是怎么实现的,以及网络数据格式是怎样的,他是怎样处理数据流的,需要像TCP一样处理粘包吗,等等一系问题,我们都一无所知。如果就这样使用了这套框架,可能会给项目带来潜在的风险,甚至由于这些风险可能会导致项目...

2019-10-08 15:45:58 1461

原创 golang 隐藏启动其他程序,包含cmd窗口(黑窗口)程序,GUI程序隐藏

最近工作中需要做一个开机自动启动其他应用的程序。并且要求可以设置是静默启动还是正常启动。这本来是一个比较常见的需求,如果用c++这种底层语言编写,只需要设置窗口属性为SW_HIDE就搞定了。但是公司要求用GO语言实现。虽然golang语言有提供windows系统包,但实际使用起来好像并不是那么好用(可能是自己没有使用好吧)。网上有人说,隐藏调用的外部程序的cmd窗口,可以设置cmd属性,可以实现...

2019-09-25 15:52:04 5069 2

原创 Golang/beego orm连接mysql 数据库

在最近项目开发中遇到一个问题,情况是这样的,第一天数据库操作完全正常的,第二天早上来,就报错invalid connection。明明第一天都是正常的,第二天来就报错了,这个问题比较尴尬。于是上网搜索后,了解到,原来mysql 连接有超时机制。如下:interactive_timeout=28800wait_timeout=28800默认情况下是28800(8小时)简单解释一下,就是8小...

2019-09-09 10:17:24 1076

原创 golang 实现ping 命令

在项目中,我们需要知道哪些IP是可用IP,这时候想到了用ICMP(Internet控制报文协议)。于是就在网上查找,后来找到了一个开源库–github.com/sparrc/go-ping。这个库简单好用,能达到项目需求,也推荐大家使用。贴一个示例吧.(当然你得先 go get github.com/sparrc/go-ping 库)。func ServerPing(target string...

2019-08-30 16:04:47 2399

原创 golang隐藏window系统下自身cmd窗口

在最近开发工作中,需要隐藏父程序窗口,并用该程序去启动其他程序(包括exe程序,bat脚本等)在网上收了一下,有网友说通过在编译go时加入参数: go build -ldflags=”-H windowsgui” 这样确实做到了隐藏程序窗口的目的。在测试过程中发现,这种写法,在win10中运行启动EXE程序和BAT脚本都是正常工作的。但是,在win7某些版本中,启动EXE程序正常,启动BAT脚本...

2019-08-19 16:02:19 3706

转载 Scrum和XP极限编程

本文转载自:http://blog.sina.com.cn/s/blog_6df370b701013mi3.html近年来,软件开发领域内,敏捷方法大行其道,在各个公司内弄得风生水起,逐渐压倒了RUP之类的传统软件工程方法。其中最为流行的当数Scrum,其次是XP。不过,在接触Scrum之初,不免有些疑惑:同时敏捷方法,它和XP(极限编程)是什么关系呢?一段时间接触下来,发现这两者之间关系也比...

2019-08-01 15:06:35 374

转载 敏捷方法之极限编程(XP)和 Scrum区别

本文转载自:https://blog.csdn.net/ostrichmyself/article/details/5375223敏捷(Agile)作为一种开发流程, 目前为各大公司所采用, 敏捷流程的具体实践有XP 和Scrum, 似乎很少有文章介绍这两者的区别,发现一篇外文, 见解非常深刻, 特将其翻译一把.原文(DIFFERENCES BETWEEN SCRUM AND EXTREME...

2019-08-01 15:05:05 321

原创 通过 sc 工具,将golang程序制作成windows服务,启动报错,解决方法

在windows 系统下,通过命令行窗口启动服务,有一个缺点:当鼠标置于窗口内,可能将程序挂起(窗口是交互界面,如果你有在程序内部捕获标准输入输出的话,是会挂起程序的)。所以,将程序制作成服务,以服务的方式启动程序,成了windows系统下,服务器程序,最佳的方式。但是用golang编写的程序,通过sc工具制作的服务无法正常启动。报错信息如下:在网搜索了很多关于这方便的信息,要么是没有结贴的...

2019-07-16 12:15:21 4067 2

原创 setup Factory 卸载文件报错 invalid uninstall control file:c:\Program

在工作中,使用setup Factory制作安装包,遇到了invalid uninstall control file:c:\Program问题。引发这个问题的原因是,安装目录有空格,在卸载时,卸载程序传入参数,将空格前截断,以至于卸载程序不正确识别卸载配置文件。解决办法有两个:1.在安装过程中,强制不能安装到带空格的目录。2.如果项目有特殊需求,必须安装到指定目录并且指定目录有空格(我就遇到...

2019-07-15 18:20:45 7250

原创 setup factory 设置默认字段的值

之前用其他工具操作注册表默认字段,一般是用"@“表示的。于是就没管那么多,直接这么用了。语句如下:Registry.SetValue(HKEY_CLASSES_ROOT, “lwyvnc”, “@”, “lwyvnc”, REG_SZ);结果,并没有按照预想的,修改默认字段的值,而是多了一个@字段。。。没办发,看setup factory 的官方文档吧,毕竟这是最权威的。文档中,关于Regis...

2019-07-15 11:29:05 310

buildversionRelease.bat

golang GoVersionInfo 编译脚本,用整合versioninfo.json资源到resource.syso文件。并编译打包resource.syso到Exe文件。

2020-05-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除