综合
离水的鱼儿
御剑江湖老,亦逞赤子心。
展开
-
简述同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别
看到一篇文章比较好,转过来给大家分享一下,看完这篇文章你就啥都懂了。POSIX同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO。按POSIX的描述似乎...原创 2020-03-22 17:54:54 · 284 阅读 · 0 评论 -
Qt QWidget、QMainWindow、QDialog区别
QWidgetQWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。QMainWindowQMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗...原创 2020-02-14 16:18:13 · 169 阅读 · 0 评论 -
cctype常用函数
cctype包含了许多常用函数。c++中应该是#include <cctype>c中应该是#include <ctype.h>以下为字符函数库中常用的函数:函数名称返回值isalnum()如果参数是字母数字,即字母或数字,该函数返回trueisalpha()如果参数是字母,该函数返回真isblank()如果参数是空格或水平制表...原创 2019-12-19 09:30:52 · 719 阅读 · 0 评论 -
cJSON的使用
JSON串肯定是最常用的,作为一个开发人员,如果不会用JSON,那有点说不过去了。C/C++我使用的cJSON库,这个比较小,而且就一个cJSON.h和一个cJSON.c,用起来非常方便。本人已经用了两年了,自打工作以来一直在使用。下载地址:https://sourceforge.net/projects/cjson/1.接口说明 cJSON API说明...原创 2019-12-18 16:18:37 · 2130 阅读 · 0 评论 -
小工具(字符集转换、编码转换、摘要、对称加解密)
刚闲下来两天,做个工具吧,一直都想把之前的完善掉,后来想想之前做的确实有点烂,毕竟工作又这么久了,自己攒的代码也是比较多了,有一些经常要用,索性做了一个可视化的工具,方便他人使用。不好看,只是实用的工具,本来想优化下按钮和界面,毕竟是个工具,实用就好啦~!!!支持Windows XP以上任意系统下载地址:https://download.csdn.net/download/xuebing19...原创 2019-12-17 15:17:15 · 1145 阅读 · 7 评论 -
C/C++获取变量名字及变量类型
获取变量名字用宏定义,前一个输出结果作为第二个的输入 #define VNAME(value) (#value)获取变量类型#include <typeinfo> 或者#include <typeinfo.h>typeid(value).name()示例#include "stdafx.h"#include <stdio.h>#includ...原创 2019-12-10 14:29:13 · 3678 阅读 · 1 评论 -
setsocketopt总结
功能描述:获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include#includeint...转载 2019-11-24 22:29:10 · 2690 阅读 · 0 评论 -
windows connect、接收发送超时 setsocketopt
目的1:socket 连接超时设置(connect)通过select来管理socket进行超时设置WSAStartup(MAKEWORD(2, 2), &data); sock=socket(AF_INET,SOCK_STREAM,0); //初始化套接字 ip类型-> AF_INET:IPV4 AF_INET6:IPV6 memset(&server_a...原创 2019-11-25 20:42:01 · 1738 阅读 · 0 评论 -
windows下只允许一个程序在运行
HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针BOOL bInitialOwner, // 初始化互斥对象的所有者LPCTSTR lpName // 指向互斥对象名的指针);创建一个互斥体(MUTEX)返回值Long,如执行成功,就返回互斥体对象的句柄;零表示出错。会设置GetLast...原创 2018-12-28 14:38:44 · 2943 阅读 · 3 评论 -
JS判断浏览器是否为IE以及IE版本号
最近有个项目在做示例Demo的时候要适配各个浏览器以及不同的版本,IE真的是让人抓耳挠腮啊~!!直接撸代码。//判断是否是IE浏览器 function isIE() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 return userAgent.indexOf("compatibl...原创 2018-12-28 14:48:43 · 922 阅读 · 0 评论 -
VS常用预处理器设置
error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.提示已经很明确了,只要添加 _CRT_SEC...原创 2019-01-01 22:18:49 · 13297 阅读 · 5 评论 -
VS2012 编译 遇到 error LNK2026: 模块对于 SAFESEH 映像是不安全的
解决方法:1.打开该项目的“属性页”对话框。2.单击“链接器”文件夹。3.单击“命令行”属性页。4.将 /SAFESEH:NO 键入“其他选项”框中,然后点击应用。如图:...原创 2019-02-15 15:58:21 · 534 阅读 · 0 评论 -
VS2012下制作和使用静态库和动态库
引言什么是库:库是写好的现有的,成熟的,可以复用的代码。所谓静态、动态是指链接。将一个程序编译成可执行程序的步骤:静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。为什么还需要动态库?空间浪费是静态库的一个问题。另一个问题是静态库对程序的更新、部署带来麻烦。如果静态库liba.lib更新了,所以使用它的应用程序都需...原创 2019-02-21 19:50:00 · 1745 阅读 · 0 评论 -
CreateThread正常创建线程后线程不运行
int main(){ HANDLE hThread=CreateThread(NULL,0,fun,NULL,0,NULL); if(hThread==NULL) { printf("err\n"); }}上述代码在main函数中创建一个子线程,线程创建是没有问题的,但是线程却没有运行。解决方案:线程创建后添加如下代码WaitForSingleObject(hThrea...原创 2019-03-27 10:22:24 · 5093 阅读 · 4 评论 -
Windows下VC编译器和Linux下做的SM3摘要值不一样
最近向Linux移植自己的Windows服务,HTTPS中的服务端秘钥是我经过SM4加密的,此加密是在VC2010做的,但是同样的代码移植到Linux 64位下死活解密不了了,解出来就是一堆乱码。开始排查错误,第一种情况先看解密时的数据是不是完整的,用16进制字符串打出来发现没有问题。那就是解密的秘钥不对,我的解密秘钥是一段数据经过运算形成的加解密秘钥。void makeSecretKey(un...原创 2019-06-06 09:11:00 · 1991 阅读 · 0 评论 -
修改IE设置(修改注册表)允许活动内容在"我的电脑"的文件运行
最近有个项目用IE打开页面总是弹一个“Internet Explorer已限制此网页运行脚本或ActiveX控件”,因为在我的网页中加了JS文件,所以会有这个提示,为了不让用户手工设置IE,所以只能通过程序来修改IE配置。看了几个文章,确定的是要勾选IE高级设置中的“允许活动内容在"我的电脑"的文件运行”,如下图所示。勾选上这个就不会弹上边提示框了。我看了百度的资料有点少,有两个注册表的...原创 2019-06-03 14:47:50 · 4144 阅读 · 2 评论 -
隐藏exe、Win32控制台程序运行
方法1:在头文件下加上一句预处理命令:#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址完整程序为:#include<windows.h>#pragma comment( linker, "/subsystem:\"windows\" /entry:\...原创 2019-07-19 11:31:05 · 4111 阅读 · 2 评论 -
VS程序申请管理员权限
有时候程序是需要管理员权限才能做一些操作,比如对C盘进行读写(日志),没有管理员权限就什么也做不了。解决办法:右键项目,属性–>链接器–>清单文件–>UAC执行级别–>requireAdministrator (/level=‘requireAdministrator’)如下图所示...原创 2018-12-27 16:38:39 · 1231 阅读 · 0 评论 -
Windows下获取程序内存使用量和时间花费
获取内存使用量头文件#include&lt;Psapi.h&gt; HANDLE handle = GetCurrentProcess(); //获取当前进程句柄 PROCESS_MEMORY_COUNTERS pmc; GetProcessMemoryInfo(handle, &amp;pmc, sizeof(pmc)); printf("%d Byte\r\n",pmc.Worki...原创 2018-12-13 11:04:35 · 1180 阅读 · 0 评论 -
Windows和Linux下获取进程ID和线程ID
windows下获取进程ID或线程ID通过调用系统提供的GetCurProcessId或GetNowThreadID来获取当前程序代码运行时的进程或线程ID示例代码:#include "windows.h"printf("pid is %d", GetCurrentProcessId());printf("tid is %d", GetCurrentThreadId());linux...原创 2018-12-13 10:49:42 · 4696 阅读 · 1 评论 -
【Java编码规范】《阿里巴巴Java开发手册(正式版)》更新(v1.1.1版)
2017年开春之际,诚意献上重磅大礼:阿里巴巴Java开发手册,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。 你是否曾因Java代码规范版本纷杂而无所适从? 你是否想过代码规范能将系统故障率降低20%? 你是否曾因团队代码风格迥异而协同困难? 你是否正在review一些原本可以避免的故障?原创 2017-05-21 17:55:44 · 397 阅读 · 0 评论 -
DOM和SAX的区别
一、简介DOM 简介: DOM 对于 XML 的处理方式就是把整个 XML 读到内存中形成一棵树状结构,然后用各种方法对这棵数进行遍历、插入、删除、修剪等操作。因为 DOM 是 W3C 的正式标准,所有的语言都有支持 DOM 的解析器,包括 Java、C/C++、Perl、JavaScript 等等。DOM 的优点是信息量丰富(全部都在内存中),而且可以随机访问,尤其是在处理前后相互关联的元素时原创 2017-06-08 19:48:19 · 626 阅读 · 0 评论 -
VS2012下如何生成和调用DLL
做工程的人都知道,代码编写是一个模块化的过程,有时候,其中一部分在其他的项目中也会使用,于是就会想着把这些编写成DLL,方便调用,于是花了一些时间了解了下DLL的相关信息。1、DLL和LIB的联系区别DLL是程序在运行阶段才需要的文件;而LIB是程序编译时需要链接的文件。DLL只有一种:其中一定是包含了函数和过程的实现。微软的Visual C++支持三种DLL,它们分别是Non-MFC Dll(非M原创 2017-08-24 09:03:47 · 616 阅读 · 0 评论 -
IE中Active控件实现自动下载注册(基于Tomcat)
最近我们老大让我学习Active控件。一、编写一个Active控件这里不详细介绍怎么写Active控件,提供一个连接自行查看。 c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目 小弟也是一点点看教程学习的,大家要有耐心。现在附上工具下载链接:ActiveX Control Test Container http://download.csdn.net/down原创 2017-08-10 18:15:14 · 2244 阅读 · 0 评论 -
Lib和DLL区别及DLL的使用方法
自从决定转战C以后就开始着手做控件,相继又学习了动态链接库(DLL),最近要写一个客户端,用到了DLL,现在回想一下DLL和Lib有点恍然大悟的感觉,然后用博客记录下来吧。仅供大家学习交流~! 以下大部分内容摘自:http://blog.csdn.net/jhgameboy/article/details/23710429 **关于lib和dll的区别如下:** (1)lib是编译时用到的,d原创 2017-10-13 21:35:05 · 3681 阅读 · 0 评论 -
Base64、32、16 编码解析
在这里我只讲Base64编码,其次Base32和Base16原理是一样的,这里一带而过。 1.Base64:顾名思义,64就是64个可打印字符,A~Z、a~z、0~9、+、/,这64个可打印字符。2^6=64 **原则:**3*8 转换成4*6 这里的8是指电脑的二进制位8bit 即一个字符在电脑里存储情况,3指的是三个字符(任意),4指的是64个中4个可打印字符,6只得是6个二进制位原创 2017-12-13 18:58:12 · 9684 阅读 · 1 评论 -
BCD码
即BCD代码。Binary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值原创 2017-12-13 20:39:09 · 2511 阅读 · 0 评论 -
POST 数据中"+"、"&"数据丢失
今天在POST一个数据的时候发现后台得到的数据验证不通过,发现post过来的字符串+号丢失了,变成了空格。&符号后的数据全部丢失。解决方法:将“+”和“&”重新编码(URL编码)1.“+” 替换成 %2B 2.“&”替换成 %26原创 2018-01-15 17:12:41 · 2502 阅读 · 0 评论 -
Tomcat启动闪退解决办法
好久没弄Tomcat了,以前也解决过这个问题。今天想用Tomcat配置SSL,结果怎么也启动不了。一直闪退,之前还好好的呢,怎么就闪退了呢?记录一下解决办法,省的日后忘记。Tomcat的安装路径下的bin目录,如我的:E:\apache-tomcat-8.0.23\bin 找到startup.bat,右键找到编辑,或者用其他编辑器打开。托到最后,将 call "%EXECUTABLE%" star原创 2018-04-24 09:09:34 · 1793 阅读 · 0 评论 -
关于URL编码 对空格的处理问题
在做一个项目的时候一个变量中带有空格处理后,后台却无法解析了,我用的是HTTP协议传输,当初我传+号的时候变的是空格,以为空格就是变得+号,但是做签名的时候怎么都验签不过,发现了这个问题。 原来有两个标准,W3C和RFC 2396,具体描述如下。以下内容转自: https://blog.csdn.net/foxpeter/article/details/23475293URL中的空格有时候...原创 2018-06-12 13:59:07 · 4615 阅读 · 0 评论 -
VS2012编译LibIconv库及示例Demo
Libiconv库可以实现文字格式转换,VLC在DVB的SI信息中,字符(如SDT节目名字、提供商,和EIT等)解析显示用到这个库1.1. 下载 iconv 库并解压,目前最新版本为 1.15 http://ftp.gnu.org/pub/gnu/libiconv/ 2. VC2012新建win32静态库工程,libIconv。复制iconv库lib文件夹所有文件到工程文件夹下 3....原创 2018-07-11 23:49:48 · 2271 阅读 · 3 评论 -
小工具———字符编码转换查看(MFC)
最近这一年多的工作当中,有很多工作都涉及到了编码问题,每次都要去网上查很麻烦,所以,现在自己写了一个工具,方便查看各种各样的字符编码。 是用VS2012写的,用了MFC。 直接上图吧 说明: **1.**URL编码 对空格处理成“+”号,还有一种是处理成%20,而不同的标准对空格处理也不同,详情请看我的另一篇文章 关于URL编码 对空格的处理问题:https://blog.csdn....原创 2018-07-11 23:36:17 · 2842 阅读 · 6 评论 -
比较两个日期相差的天数
最近在写项目的时候用到了日期相差的天数。想了想没啥可用的接口,就自己手工写了一个。 直接上代码:myTime.h#include &amp;quot;stdafx.h&amp;quot;#include &amp;amp;lt;stdio.h&amp;amp;gt;struct myTime{ int year; int month; int day;};//设置日期void SetDate(原创 2018-07-31 22:21:48 · 1277 阅读 · 0 评论 -
libevent 2.1.8 编译常见错误
最近想做一个HttpServer,其实我找了很多开源库,昨天搞了一晚上的libcurl,感觉太繁重了,后来很多人都推荐用libevent,于是想搞一下。 libevent官网下载最新的libevent-2.1.8-stable.tar,地址:https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/li...原创 2018-09-04 10:33:55 · 2651 阅读 · 1 评论 -
高内聚低耦合
起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。 耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。 耦合性分类(低――高): 无直接耦合;数据耦合;标记耦合;控制耦合原创 2017-05-25 20:21:02 · 1098 阅读 · 0 评论