自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 多线程环境下使用openssl

使用旧版本openssl时,需要设置两个回调The documentation on OpenSSL threads states (at least for version 1.0.2):OpenSSL can safely be used in multi-threaded applications provided that at least twocallback function...

2018-11-29 21:28:22 2797

原创 使用UMDH检测内存泄漏

设置gflag找到Image File选项卡,输入要检测的进程名,按Tab,然后勾选Create user mode stack trace database第一次转储运行要检测的的程序,命令行下运行umdh -p:进程PID -f:输出文件名(例如first.txt)。第二次转储执行你觉得可能造成内存泄漏的操作,然后再次使用umdh转储对比命令行下运行Umdh -d first.t...

2018-11-28 18:33:23 448

原创 使用Visual Leak Detector检测内存泄漏

安装Visual Leak Detector前往官网下载并安装。设置附加包含目录添加C:\Program Files (x86)\Visual Leak Detector\include附加库目录添加C:\Program Files (x86)\Visual Leak Detector\lib\Win64附加依赖项添加vld.lib将vld.ini中的ReportTo修改为both测...

2018-11-28 17:50:05 890

原创 C++中传递可变参数

std::string & getFormattedStr(std::string &strFormatted, const char *strFormat, va_list arglist){ const int MAX_FORMATTED_STR_LEN = 2048; char strResult[MAX_FORMATTED_STR_LEN] = { 0 }; vsp...

2018-11-28 12:06:18 4154

原创 解决error C2760:语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”

VS工具集为v141_xp时,编译会报错error C2760:语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”解决办法:C/C++ -> 语言 -> 符合模式,修改为否...

2018-11-27 18:45:02 21599

原创 Window下编译boost1.68

下载boost前往boost官网下载boost1.68编译解压释放到D:\boost1.68.0,使用VS工具运行bootstrap.bat,分别运行下面两个命令,其中address-model表示编译的是32位还是64位库,–stagedir=表示输出目录,link表示编译的是静态库还是动态库,runtime-link表示使用的运行时库是静态链接还是动态链接,threading表示使用的运...

2018-11-27 18:12:55 776

原创 Windows下编译libevent2.1.8

下载源代码前往Github下载libevent2.1.8,官网的源代码不包含CMake配置。生成VS解决方案使用CMake配置libevent,填写openssl目录,生成VS解决方案完成调整event,event_core,event_extra项目编译选项后编译即可...

2018-11-27 16:26:55 680

原创 Windows下编译libcurl7.62.0

下载源代码前往curl官网下载curl-7.62.0.zip配置项目使用VS打开解决方案curl\projects\Windows\VC15\curl-all.sln,选择一个配置例如LIB Release - LIB OpenSSL,C/C+±>常规->附加包含目录添加zlib和openssl头文件目录,预处理命令添加HAVE_LIBZ,HAVE_ZLIB_H,ZLIB_WIN...

2018-11-27 16:11:33 424

原创 Windows下编译openssl1.1.1a

下载源代码前往openssl官网下载openssl-1.1.1a.tar.gz安装ActivePrel前往ActivePrel官网下载并安装ActivePrel安装dmake命令行里输入ppm install dmake安装dmake添加zlib支持打开openssl\crypto\comp\c_zlib.c,在# include <zlib.h>上方添加#define ...

2018-11-27 16:03:15 4447

原创 Windows下编译zlib1.2.11

下载源代码前往zlib官网下载zlib1.2.11源代码编译汇编代码使用VS工具运行下面两个批处理zlib\contrib\masmx86\bld_ml64.batzlib\contrib\masmx64\bld_ml32.bat配置静态库项目使用VS打开解决方案文件zlib\contrib\vstudio\vc14\zlibvc.sln设置zlibstat项目编译方式(MT/M...

2018-11-27 15:27:04 2384

原创 关闭Activity动画效果

今天手机系统更新到Android9.0后发现APP部分页面打开有一定概率出现闪烁,使用排除法定位,发现如果Activity启动时显示对话框,然后短时间内dismiss就会闪烁,关闭Activity动画效果可以解决。方法一调用startActivity前设置Intentintent.addFlags( Intent.FLAG_ACTIVITY_NO_ANIMATION );方法二调用st...

2018-11-22 21:43:31 1186

原创 使用onConfigurationChanged遇到的坑

Activity设置了属性android:configChanges="orientation|screenSize"后,当手机横竖屏切换的时候不会重新Create了,而是会调用onConfigurationChanged,但是如果你想要在这里获取控件最新的高度和宽度的话就错了,这里调用GetHeight,getWidth得到的仍然是之前的值。 @Override public v...

2018-11-22 15:02:07 1042

原创 Motionvent详解

事件类型Android将所有触摸事件都放在了Motionvent里,这些事件类型有ACTION_DOWN,第一个手指初次接触到屏幕时触发ACTION_MOVE,手指在屏幕上滑动时触发ACTION_UP,最后一个手指离开屏幕时触发ACTION_POINTER_DOWN,手指接触到屏幕时触发(需要有其它手指在屏幕上)ACTION_POINTER_DOWN,手指离开屏幕时触发(需要有其它手...

2018-11-21 00:14:30 218

原创 C++范围for语句

c++11引入了一种更简单的for语句,这种for语句可以遍历容器或者其它序列的所有元素,如下代码,每次循环都会重新定义冒号左边的循环控制变量,而冒号右边必须是一个序列。int main(void){ std::vector<int> value1 = {1,2,3,4,5,6}; for (auto &n : value1) { std::cout <&lt...

2018-11-20 00:01:06 678

原创 https性能优化

1).CDN接入    HTTPS 增加的延时主要是传输延时 RTT,RTT 的特点是节点越近延时越小,CDN 天然离用户最近,因此选择使用 CDN 作为 HTTPS 接入的入口,将能够极大减少接入延时。CDN 节点通过和业务服务器维持长连接、会话复用和链路质量优化等可控方法,极大减少 HTTPS 带来的延时。(2).会话缓存    虽然前文提到 HT...

2018-11-19 23:48:38 1471

原创 C++类型处理

类型别名有两种方式可以定义类型别名typedef和using。typedef int xyint;//xyint是int的类型别名typedef int *pxyint;//pxyint是int*的类型别名using xydouble = double;//xydouble是double的类型别名using pxydouble = double*;//pxydouble是double*的...

2018-11-18 22:50:02 406

原创 程序员的职业素养

专业主义将软件给QA测试前,自己要先做一遍测试工作,尽量让QA找不出任何问题。好的软件结构应该是易于修改的,不要为了赶项目进度而破坏这种结构。证明软件是易于修改的方式就是随时修改,一旦发现某些部分设计不合理,就应该尽快修改,使后续修改变的简单。害怕修改代码的一个原因之一是因为没有做过完善的测试,对自己的代码没有信心,这个时候你需要一个能覆盖百分之九十以上代码且快速执行的自动化测试工具。...

2018-11-17 01:17:48 263

原创 初探Service

public class MyService extends IntentService {public MyService(){ super("MyService");}@Overrideprotected void onHandleIntent(@Nullable Intent intent) {}}

2018-11-16 22:54:37 117

原创 Android下模拟点击方式总结

adb shell不用root,连上电脑就能使用,响应时间慢(>200ms)AccessibilityService不用root,能跨进程,只能点击安卓原生控件MotionEvent不用root,不能跨进程,只能点击安卓原生控件Instrumentation/IWindowManager需要有system权限或者进程所属uid一样或者root,能跨进程,响应时间较快(20~50...

2018-11-16 00:23:51 1593

原创 C++常量表达式和constexpr

常量表达式常量表达式是指不会改变且在编译过程中就能得到计算结果的表达式。int main(){ const int value1 = 10; const int value2 = value1 + 1; return 0;}constexprconstexpr和const很像,有如下区别使用constexpr修饰的变量将在编译期间就运算出结果,而使用const修饰的变...

2018-11-15 22:36:26 614

原创 使用C++版本的C标准库头文件

对于一些拥有 xxx.h 形式的 C 标准库头文件,C++ 标准库同时包含同名的头文件和拥有形式cxxx的头文件,尽量使用C++标准库头文件代替C 标准库头文件。#include <cstdio>int main(){ printf("hello wolrd!\n"); std::printf("hello wolrd!\n"); return 0;}...

2018-11-14 21:31:55 326

原创 使用原子操作进行hook

什么是原子操作资源原本的值是A,现在将资源的值修改为B,在这个过程中,其他线程访问该资源时,获取的值要么是A,要么是B,不会有中间值出现。需求最近在写一个程序的时候,需要hook其他进程代码(64位进程),对稳定性要求很高,另外为了提高隐蔽性,打算用WriteProcessMemory写入shellcode,这样不用注入dll。hook方式的选择inline hook和IAT hook都...

2018-11-14 21:00:49 369

原创 XML中的转义字符

XML中不允许出现一些特殊字符,这些字符需要使用转义字符代替显示结果描述转义字符十进制 空格  <小于号<<>大于号>>&与号&&"双引号"&

2018-11-14 20:16:05 39176 1

原创 C++字面值

整形字面值十进制字面值的类型是int,long(32位系统中占4字节,64位系统中占8字节),long long中尺寸最小者。八进制和十六进制的字面值的类型是int,unsigned int,long,unsigned long,long long,unsigned long long中尺寸的最小者。auto value1=20;//十进制auto value2=024;//八进制aut...

2018-11-13 22:54:12 1927 1

原创 C++左值引用和右值引用

左值与右值左值是指既能出现在等号左边也能出现在等号右边的变量(或表达式),右值则只能出现在等号右边引用引用是给一个存在的对象定义的别名,一个变量可以有多个引用,引用必须初始化,引用只能在初始化的时候引用一次,不能更改引用其他变量。左值引用通过&获得左值引用,左值引用只能绑定左值。 int intValue1 = 10; //将intValue1绑定到intValue2和int...

2018-11-12 20:55:13 3157 2

原创 C++作用域

C++中作用域以花括号分隔,作用域能包含彼此,作用域中声明的名字(变量,常量,类型,函数),它所嵌套的作用域也能访问定义于所有花括号之外的名字拥有全局作用域在作用域外面不能访问作用域内的名字内层作用域能重新定义外层作用域已有的名字使用::能显示访问全局变量//全局作用域int g_intValue = 100;int main(){ //局部作用域 int intVal...

2018-11-11 22:10:21 4170

原创 使用iperf测试网络性能

最近在测试局域网下HTTP服务器性能,服务器用的是万兆网卡,但是吞吐量到达100M/s就上不去了,怀疑和网络环境有关系服务端iperf3 -s -p 5001 -i 2客户端iperf3 -c 127.0.0.1 -P 4 -t 30 -i 2 -p 5001iPerf 工作模式和参数如前文所述,iPerf 的工作时需要指定 Server 模式或 Client 模式,通过不同的参...

2018-11-08 19:50:05 6410

原创 Android与iOS内存回收机制区别

iOS的内存回收机制IOS采用引用计数算法回收内存,当对象引用计数为0时,对象会执行反初始化方法并被回收。如果两个对象互相引用对方,就会造成循环强引用,导致内存泄漏。Android内存回收机制Android采用的是根搜索算法回收内存,该算法通过GC Roots作为起点往下搜索,搜索通过的路径称为引用链,当一个对象没有被GC Roots的引用链连接的时候,这个对象就会被回收。即使A和B两个对象...

2018-11-07 21:27:57 2178

原创 BottomNavigationView图标大小和颜色设置

取消导航栏图标着色navigation.setItemIconTintList(null);设置导航栏图标<?xml version="1.0" encoding="UTF-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:d...

2018-11-07 15:41:01 12129 4

原创 Swift学习笔记-Comparable和Equatable

在Swift中可以通过实现Equatable协议使自定义类型支持==以及!=这两种运算符;Comparable协议继承于Equatable,实现Comparable协议可以在Equatable的基础上使类型支持>,>=,<,<=四种运算符。import Foundationstruct Point:Comparable{ let x:Int le...

2018-11-07 00:28:15 1928

原创 Swift学习笔记-内存管理和ARC

在Swift中,由于值类型在传递过程会创建新的副本,所以你不需要做任何事情管理值类型的内存;而引用类型则不一样,它在传递过程中会创建新的引用,这些引用都指向同一块内存,当引用计数为0时,实例就会被回收,deinit方法将被调用;和OC一样,Swift也使用了自动引用计数(ARC)来管理类实例的引用计数。循环强引用下面代码中xiaoMing拥有book和milk,而book和milk也拥有x...

2018-11-07 00:05:20 338

原创 Swift学习笔记-协议扩展

在Swift中进行面向对象编程时,尽量使用协议和泛型,而不是类继承,因为过深的继承层次很容易让代码充满难以理解的类。协议扩展前面我们介绍过了类的扩展,协议的扩展也是类似的,协议扩展可以添加现有的计算属性和方法,不能添加存储属性。扩展不会增加协议的需求。下面的代码中,所有实现Worker协议的结构体都获得了一个getDesc方法。protocol Worker { var job...

2018-11-05 21:24:50 1222

原创 Swift学习笔记-泛型

泛型能让我们使用的类型和函数使用未知的类型,许多内置类型,例如可空类型,数组和字典都是用泛型实现的。泛型类型下面的结构体实现了一个简单的栈,可以对Int类型执行push和pop操作。struct Stack{ var items = [Int]() mutating func push(newitem:Int){ items.append(new...

2018-11-04 23:55:30 218

原创 应用内更新提示“解析软件包失败”的解决方法

今天在一个小伙伴的手机上测试版本更新功能,每次安装APK的时候都会提示“解析软件包时出现问题”,手机型号为小米3,系统版本为MIUI10开发版,在其他小米手机上则可以正常安装。首先怀疑是不是下载不完整导致的,但是对比了MD5值,是正确的。是否是系统BUG?测试其他APP的版本更新功能,发现是正常的。那会不会是权限问题呢,因为我下载的APK文件会存放在缓存文件夹里,有可能安装程序没有权限访问...

2018-11-01 22:15:22 6902 1

输入法注入之delphi版

输入法注入之delphi版。。。。。。。。。

2010-08-25

delphi小键盘控件

模仿QQ小键盘写的一个小键盘控件,可以自定义小键盘的各种颜色,大小,位置,字体,还可以使用渐变图像代替颜色,使按键更加好看!

2010-05-28

空空如也

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

TA关注的人

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