自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 cmake的使用方法

在涉及到跨平台的开发,大家都会提及到cmake,因为用它可以更方便的生成makefile文件,同时也可以生成相应平台版本的工程文件。 cmake的IDE工具,我通过查询资料对比,发现QtCreator比较方便易用,推荐大家使用。 在windows平台和linux平台都需要安装camke工具; windows下载地址:Index of /files (cmake.org)https://cmake.org/files/ lin...

2021-11-25 18:02:26 719

原创 虚拟机的三种模式

虚拟机三种网络模式 虚拟机的网络形态,可以理解为,都会虚拟一个交换机,然后用不同模式去连接这个交换机。桥接模式 比如有两台虚拟机,地址是10.3.40.11/24、10.3.40.12/24;相当于这两台虚拟机的网卡分别都连再了虚拟机交换机上VMnet0。 主机的网卡地址是10.3.40.10/24;这时会有一个虚拟机网桥将主机的网卡设备连再虚拟机交换机VMnet0上,这样同一个网段,并且在同一个交换机上,三者之间的网络必然是通的。 如...

2021-11-15 16:05:26 1373

原创 c/c++互斥锁

ResLock.h#ifndef _RESLOCK_H_#define _RESLOCK_H_#ifdef _MSC_VER #include <windows.h>#else #include <pthread.h>#endif/*** @class ResLock** @brief lock for reading/writing shared resource in multi-threads** @version V1....

2021-08-23 14:33:03 266

原创 c/c++捡漏

1:int 是4个字节,可表达的取值范围是255*255*255*255=4,228,250,625 (满足时间戳的取值范围<1,625,211,930 2021-07-02 15:50:50>)。2:short是2个字节,可表达的取值范围是255*255=65535。3:windwos平台下 long型在64位机器和32位机器,都是4个字节;linux平台下long型是8个字节。4:windwos平台是小端(低字节序在低地址位表示);linux平台是大端(高字节序在低地址位表示).

2021-07-02 18:41:30 114

原创 Windows平台 VS2019 编译 openssl1.1.1以及gmssl

前序:总结一下openssl源码在windows平台编译的问题。linux平台上相对比较简单,和其他源码编译方式一样,基本都是./configure --prefix=""

2021-06-04 17:23:29 1380 1

原创 Linux 编译脚本

#Makefile#Makefile Common#author zhangbCC = g++LD = ldLDSO = $(CC) -shared -nostartfilesCFLAGS = -fPIC -Wall -Wno-unused -D_REENTRANT -O2LINKFLAGS = -lpthread -lzCINCLUDE += -I. \LINKFLAGS +=LIBSMAI...

2021-04-09 14:27:32 437

原创 S S O单点登录

S S O单点登录C A S :1:用户访问OA 1,过滤器会判断用户是否登录,位登录则重定向跳转到UAP认证中心,校验完账号和密码,返回一个ticket,浏览器拿着ticket访问OA1,OA1会去UAP认证中心,校验ticket是否有效,有效则返回成功,并且OA1保存该用户的会话session。2:用户下次访问OA1,因为已经有session,则直接访问。3:用户访问OA2,浏览器会拿着ticket访问OA2,OA2去UAP认证中心,校验ticket是否有效,有效则返回成功,并且OA2保存该用户

2020-12-30 17:50:13 318

原创 邮件协议

邮件相关浅知识S M T P:简单邮件传输协议,标准的邮件传输协议。从源地址到目标地址邮件发送时,传输邮件的规范,通过他来控制邮件的中转方式。属于T C P / IP协议族。POP 3:邮局协议第三版本,负责在邮件服务器上检索邮件。 要求邮件服务器有如下三种功能。一:检索邮件,并删除。二:检索邮件,不删除。三:询问是否有新邮件到达。I MAP:互联网信息访问协议,优于POP的新协议。可以提前预览邮件标题,而不是先下载。...

2020-12-30 11:03:58 390 1

原创 网络基础知识总结

网络基础知识小结(持续滚动补充)IP地址包含网络ID和主机ID。表示方法如:192.168.1.1/32 等价于192.168.1.1 / 255.255.255.0子网掩码,用来与IP地址取位与运算,计算其是否在同一个网段,表示方法如:255.255.255.0等价于24/0。比如255.255.248.0的掩码,代表网段1-7是同一网段。网关:用于将不同网段的数据包,做转发功能。路由:查找目标地址的下一跳。D N S:域名解析服务器,用来解析请求数据包里的域名查址到对应的IP。网桥:将

2020-12-19 11:32:25 217 1

原创 qt信号和槽

今天发现,qt里的信号和槽关联 connect的时候,如果涉及到参数, 在真正发送信号和槽函数响应的时候,一定要和connect保持一直的参数类型.比如,const char* 或者char* 这种都差别,都会导致信号和槽的失败....

2020-08-06 15:30:51 89

原创 联想E590 无线网卡不能使用的问题

前几天买了一个新电脑 ThinkPadE590 系统自动升级了系统之后,无线网卡不能用了。间接折腾了两天找了解决方法,分享给大家。我的电脑,设备管理器里,无线网卡的驱动状态显示黄色感叹号,设备状态是windows 仍在设置此设备的类配置,代码56.下载一个软件 CCleaner,清理注册表之后,重启电脑,则可解决此问题。官网下载免费版,临时用一下是可以的,这款软件是收费的。...

2020-08-06 00:21:59 1330

原创 vs debug调试报错

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.解决办法:.

2020-08-04 10:53:09 589

原创 字符串数组

注意一下字符串数组长度的计算.sizeof计算的是指针的大小,因此可以计算出字符串数组的个数.

2020-07-30 11:41:14 152

原创 金士顿优盘不被电脑识别的小技巧

刚才发现自己用了两年的优盘不能被电脑识别了,自己摸索了下,正常了,分享给大家。第一步,我的电脑右键管理,设备管理器,通用串行总线控制器,USB大容量存储设备,选中之后,右键先卸载设备。第二步,重新插入优盘。第三步,通用串行总线控制器点击重新扫描设备。...

2020-07-21 14:09:58 300

原创 error:C2572 重复定义默认参数

今天上午编译的时候,函数声明的时候加了默认参数,但是编译的时候一直提示标题所述的错误,让我都开始怀疑编译器有问题,或者颠覆了我的三观,难道c++开始不支持默认参数了吗? 肯定不是这样的。报错的原因是:一个函数申明的时候有了默认参数的默认值,在定义的时候如果还带了默认值,那就会报这个错误。但是我反复检查,我写的是对的,这是常识问题了,怎么还老报错。后来我才发现,我的头文件被include了两次,头文件里没有加只编译一个的条件限制。两种方式:一:在头文件里首部加 #pargram once

2020-07-21 11:46:20 233

原创 c++ socket通信

socket通信是支持域名发送的,但是不能直接用域名发送,需要先解析域名,获取到实际IP地址才可以。int SendMsg(char *szMsg, int nMsgLen){ int nRet = 0; if(strlen(m_szIp) <= 0) return -1; WSADATA wsaData; int iResult = WSAStartup(MAKEWORD(2,2), &wsaData); if (iResult...

2020-07-16 16:18:22 733

原创 线程创建事项

创建线程传参时,一定要注意参数的生命周期,否则,一个BUG引发的一个思考。DWORD WINAPI RegSetValueProc(LPVOID lpParameter){ return 0;}HANDLE handl_1;handl_1 = CreateThread(NULL, 0, RegSetValueProc, pParam, 0, NULL);CloseHandle(handl_1);void* SendSystemEventThreadProc(void*...

2020-07-10 11:44:59 82

原创 虚拟机版本兼容性问题

今天在同事那里学到一个小技巧,记录一下。通常我们会遇到虚拟机版本兼容性问题,比如同事拷贝一份虚拟机,在自己电脑上运行,如果自己的虚拟机版本较低,则会提示不兼容。之前我遇到这种情况,会升级与她版本一致的虚拟机,现在才知道,可以通过修改配置来匹配。如下:找到虚拟机 .vmx文件,然后记事本编辑其中的字段version .改成期望的版本即可。...

2020-06-29 15:05:27 1208

原创 openssl/gmssl 常用命令

windows平台下,openssl的安装,我很早之前也是查资料去安装的,需要openssl源码和perl,以及VS开发工具(具体步骤,大家百度一下吧)。现在已经有现成的安装包了,安装完之后,配置bin目录的环境变量就可以了。今天用到了一些转换命令,记录一下。问题1:WARNING: can't open config file: /usr/local/ssl/openssl.cnf解决:set OPENSSL_CONF=C:\openssl-1.0.1c\openssl-1.0.1c\apps

2020-06-28 17:52:39 1301

原创 不是一个有效的win32程序的解决办法

vs高版本的编译器,编译出来的程序,在xp上运行时,可能会报这样的错误。解决办法:项目-》属性-》常规-》平台工具集 选中xp那一项目,就可以了

2020-06-18 17:57:55 683

原创 c++ 变长参数

c++在支持变长参数时,用到了三个宏,va_start、va_arg、va_end,和一个数据类型va_list。谈谈我对他们使用上理解吧va_list ptr; //首先定义一个该类型的指针va_start(ptr,parm1) //该类型指针和入参的第一个参数关联type = va_arg(ptr, tpye) //该类型指针返回一个第二个参数的值,此处做循环,这种方式不好判断什么时候结束,所以我建议用vsprintf_s替代如:char* p= va_arg(ptr, ch..

2020-06-13 18:28:19 789

原创 windows平台下常用命令

1:结束进程taskkill -F /IM process.exe2:服务的起停net servername start|stop|status3:驱动的安装卸载fltmc load|unload *sys

2020-06-05 17:13:13 322

原创 windows平台注册表的读写操作

// RegeditThread.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>#include <time.h>DWORD WINAPI RegSetValueProc(LPVOID lpParameter){ while (true) { Sleep(1); time_t lt = time(NULL); char szl...

2020-06-05 17:10:29 201

原创 c++动态库调用注意事项

#ifdef _MSC_VER#include <windows.h>#include <direct.h>#define get_function_address(x, y) GetProcAddress(x, y)#define load_dynamic_library(x) LoadLibrary(x)#define free_dynamic_library(x) FreeLibrary(x)#define ...

2020-06-03 18:07:35 252

原创 Linux下编译报错,游离问题

1:1: error: stray ‘\377’ in program1:1: error: stray ‘\377’ in program上述报错,不是代码的问题,是文本内容格式的问题,windows下正常,但是linux下编译就报错。解决方式:1:在Windows上新建一个文本文件2:将源码拷贝到文件文件3:将文本文件另存格式为ASN1格式4:将文本文件改名为工程文件就好了...

2020-06-02 14:06:15 317

原创 字节、二进制、十六进制转换输出

//将字节转换成二进制输出std::string ToBinaryString(const unsigned char* buf,int len){ int output_len = len*8; std::string output; const char* m[] = {"0","1"}; for(int i = output_len - 1,j = 0; i >=0 ; --i,++j) { output.append(m[((un...

2020-05-30 17:22:31 405 1

原创 时间显示和耗时统计

每次涉及到时间问题,我都需要查资料参考,这次刻意的记录一下,也给大家分享下: #include <time.h>#include <sys/timeb.h> //显示日期 time_t lt; lt = time(NULL); struct tm *pStTm; pStTm = localtime(&lt); printf("pStTm = %s \n", asctime(pStTm)); //统计...

2020-05-26 10:31:18 328

原创 系统目录重定向

windows平台下 vc开发中,大家应该会到系统目录重定向问题。如:64位操作系统下,32位的程序,要访问system32目录,系统会重定向到目录syswow64下。微软提供了两个API可以关闭和开启 PVOID OldValue; if (!Wow64DisableWow64FsRedirection(&OldValue)) { return R_FALSE; } //...

2020-05-26 09:53:48 311

原创 Linux常用命令

本人经常用的一些命令,记录一下,以后持续更新吧1:查看磁盘大小du -ah2:查找关键字在文件夹中grep -r -l "static" /path3:查找端口netstat -anp|grep 80804:查找进程ps -ef|grep "process"5:设置网络相关iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp -d 10.3.46.225 --dport 8783 -j DNAT --to-destin.

2020-05-20 18:12:43 143

原创 计算机编码

梳理下,自己对计算机常用编码的理解。多字节:字母按照一个字节去存储,汉字按照两个字节存储(汉字均为负数表达)宽字节:字母按照两个字节去存储(高位补00),汉字按照两个字节存储(汉字均为正数表达)ASCII:机器语言的表达方式,仅限字母特殊符号,编码对照表,对于美国人是够用了。Unicode:为了全世界语言总结的编码对照表,适用全世界。GBK(gbk2312,gbk,gb1803...

2020-05-07 18:13:10 110

原创 数据结构之二叉树

数据结构里,二叉树这种概念基本是上大学,灌耳音,听到了一些皮毛,实际在工作中也并没有用到,梳理一些概念知识点,争取以后工作中能用起来。树:有根结点,有子结点,有叶子结点。子结点:有父结点。叶子结点:无子结点。结点的度:结点连接子结点线的个数。树的度:结点的度,最大度。二叉树:1,有序排列;2,结点的度不能超过2(0,1,2)满二叉树:每个结点的叶子结点都是满的。完全...

2020-05-07 00:01:34 106

原创 字节转换问题

字节转换之前一直用封装的接口函数去做处理,今天发现可以通过字符串格式化的方式去解决,本人记录,并分享给大家。一:char* 转 wchar_t*,如下swprintf(pwcUser, 256, L"%s", pcUser);二:wchar_t* 转 char*sprintf(pcUser, "%s", pwcUser);注意:wchar_t类型是属于宽字节类型,因此根据ch...

2020-05-04 17:44:46 130

原创 给予管理员权限运行

如何在windows平台,给管理员权限运行win32的程序:Innosetup打包程序:第一步:下载Resource Hacker绿色版第二步:用此工具修改SetupLdr.e32文件,如下所示:(requireAdministrator),记得点编译...

2020-05-03 18:35:02 505

原创 Tortoise SVN异常处理

今天是五一假期,被迫来加班,遇到了SVN的问题,折腾一上午,记录一下。问题一,“svn"database disk image is malformed”解决方式:1:先下载sqlite3工具2 :切换到.svn目录下,敲命令清除,顺序如下sqlite3 wc.db "pragma integrity_check"sqlite3 wc.db "reindex nodes...

2020-05-03 15:11:04 390

原创 MFC界面布局、效果

最近两天用MFC做了一个界面,用到了一些关于界面上控件的效果,记录一下,分享给大家。第一:无边框的情况下,拖拽对话框界面响应消息函数OnNcHitTest()方法,如下:LRESULT CLogonUINew::OnNcHitTest(CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 UINT nResult = CBaseD...

2020-04-30 18:46:16 2732 1

原创 c++ vector元素删除注意事项

STL提供的模板容器vector,元素删除时,很容易导致程序崩溃。由于我已经遇到过两次了,所以记录一下。附代码:vector<string>::iterator itor;for (itor = vc_appInfo.begin(); itor != vc_appInfo.end();){ if (itor->find(pch...

2020-04-26 15:46:00 383

空空如也

空空如也

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

TA关注的人

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