自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js中浮点数的精度问题

2015-01-30 09:43:44 711

原创 HTTP杂谈

对于一个互联网公司的程序猿必须要对HTTP有所了解。       HTTP是应用层的协议,一般来说其协议层都是采用的TCP协议。TCP在3次握手成功之后才会进行HTTP的通信。       HTTP协议version分为0.9   1..0 和1.1,0.9现在基本已经淘汰了。1.0现在还有在使用。最新的1.1在1.0的基础上做了很大的改进。       HTTP分为协议包头,enti

2015-01-29 09:17:24 438

原创 MD5、SHA1和android apk签名杂谈

这一段是原创,说得不对的地方还请支出(:       首先要分清楚MD(Message Digest 信息摘要)5(第五代)和SHA1(Secure  Hash  Algorithm 安全哈希算法)并不是加密算法,应该归类为HASH(哈希)算法或者称之为摘要算法(Digest Algorithm),即将无限制长度的字符串转换成固定长度(MD5是16个字符16*8=128bits,SHA1是

2015-01-29 08:55:08 5894 1

转载 HTTP不同method的意义

GET: 请求指定的页面信息,并返回实体主体。HEAD: 只请求页面的首部。POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。PUT: 从客户端向服务器传送的数据取代指定的文档的内容。DELETE: 请求服务器删除指定的页面。OPTIONS: 允许客户端查看服务器的性能。TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。PATCH:

2015-01-23 09:19:04 1121

原创 python py文件中不能有中文的解决方案

在py文件第一行(注意:必须是第一行)加上#_*_coding:UTF-8_*_

2015-01-22 17:40:19 2701

原创 关于tinyhttpd

现在比较火的http server主要是apache nginx  。apache的主要优点是稳定,bug少,属于阻塞式的,所以对于高并发的情景下表现并不好。而nginx最近几年越来越火,属于非阻塞式的,擅长高并发的情景。如果追求性能应该选择nginx,而如果追求的是稳定,选择apache就好微信那边自己开发了一个http server。估计也是从安全的角度考虑的。看了一下tiny

2015-01-22 17:15:27 1557

原创 lua类

Account = { balance=123,}function Account:f() print(self.balance)endAccount:f()Account.balance=321print(Account.balance)输出为 -->123  -->321上面是一个简单的Account类,需要注意的事Accout类中f 函数是采用的 冒号

2015-01-22 11:09:31 488

转载 理解lua中Weak Table

如果你对lus语言的中weak table不明白的话,那这篇文章应该对你有帮助。 所有脚本语言几乎都有垃圾回收器(GC),当然lua也有。 不明白GC不要紧,下面让我来解释: 这一切要先从现代编程语言的鼻祖 — C语言开始。 如果你在C中要使用变量,可以这样定义变量,如: -----------------------------------------------

2015-01-22 10:25:11 479

转载 Lua查找表元素过程(元表、__index方法是如何工作的)

Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制,才能够实现“面向对象”的。举例说明:[plain] view plaincopyprint?tempTable = {}  print(tempTable.me

2015-01-22 09:26:33 509

原创 lua中类的方法定义

tbl={}function tbl:x() print("x")endtbl.x()和下面的输出结果一样: 和 . 的效果一样tbl={}function tbl.x() print("x")endtbl.x()

2015-01-21 17:12:05 1240

转载 Lua 学习笔记:沙盒

背景知识Lua 给我的感觉是:各种内置函数和标准库的存在感都是比较强的。如果执行这句:for name in pairs(_G) do print(_G) end就会把各种环境中已存在名称的打印出来:全局变量:比如字符串 _VERSION。内置函数:比如 print、tonumber、dofile 之类。模块名称:比如 string、io、coroutine 之类。

2015-01-21 16:21:17 1009

原创 lua table名作为key值

table1={}print("tabl1 addr=",table1)table2={}table2[table1]="amzaing lua"print("tabl2 addr=",table2)print("table2[table1] value"..table2[table1])输出为tabl1 addr= table: 002AB290tabl1 addr= tab

2015-01-21 11:41:43 4315

原创 lua table中可以有函数

tbl{ x=1, 2, print("hello lua")}可以看出table中可以有函数print等等

2015-01-21 10:10:18 1216

原创 lua实例

--mooreliufunction f1(o) print("function f1 /n") print("o.x="..o.x)endprint("using lua/n")dofile('db.lua')bd.lua代码:entry{ x=1, y=2, z=3,}print("in db.lua")上面这段代码会报错lua: d

2015-01-21 10:03:46 995

原创 python除法问题小结

python的除法比较坑比如1/3=0  直接四舍五入取整解决这个的办法是在python文件第一行代码中加入from __future__ import division 这样就能得到1/3=0.3333333的结果了如果想要截取小数点后固定位数,有两种方法1、round函数x=round((1/3),2)=0,33   保留了2位小数round(数字,精确的小数点

2015-01-20 19:55:18 1571

转载 lua中的upvalue 闭包

ua中的变量,分为三种类型:Global,Local,UpVal.前面两种不需解释,第三种变量,稍微做些代码层面上的解释,比如:function test() local a = 1 function t() a = 2 endend对函数test而言,当对变量a进行赋值的时候,会首先查找在本函数中是否有变量a的定义,如果没有发现则向更外一层的函数去

2015-01-20 15:54:24 721

原创 实现lua 字符串spllit功能

string.split=function(str,token) ret={} _,token_num=string.gsub(str,token,'') f='' for i=1,token_num do f=f..'(.-)|' end f=f..'(.+)' for j=1,token_num+1 do ret[j]=select(j+2,string.fi

2015-01-19 16:41:39 861

转载 lua与CAPI概述

1.  栈1.1 说明lua与C语言操作都是通过栈来进行的。这个栈是抽象的栈,栈中每一个元素都能保存任何类型的LUA值。 要获得一个lua中的一个值时(例如一个全局变量),只要调用一个Lua的Api函数,Lua就会将指定的值压入栈中。 要将一个值传入Lua时,需要先将这个值压入栈,然后再调用Lua Api,Lua就会获取值并将此值从栈中弹出。 几乎所有的lua api都会使

2015-01-19 10:30:28 680

转载 C++项目中的extern "C" {}

引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:123456789#ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}

2015-01-19 10:18:16 567

转载 gcc/g++/clang/cl编译器

GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发布的自由软件,也是GNU项目的关键部分,亦是自由的类Unix及苹果电脑Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。GCC原名为GNU C语言编译器(GNU C Com

2015-01-19 09:52:54 12726

原创 lua loadstring

x=11f=loadstring(" x=10 return x+10")print(f())print(f())上面的返回值为-->20-->20说明了loadstring 中将“”string中的变量都当做了local变量

2015-01-18 19:11:04 1144

转载 Step By Step(Lua迭代器和泛型for)

1. 迭代器与Closure:    在Lua中,迭代器通常为函数,每调用一次函数,即返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之间保持一些状态,这样才能知道它所在的位置和下一次遍历时的位置。从这一点看,Lua中closure机制为此问题提供了语言上的保障,见如下示例: 1 function values(t) 2 local i = 0 3 r

2015-01-18 18:57:10 371

转载 浅析Lua中table的遍历

转至 http://rangercyh.blog.51cto.com/1444712/1032925当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是:for key, value in pairs(tbtest) do   XXX  end  for key, value in ipairs

2015-01-18 10:11:05 639

原创 lua table杂谈

今天开始学习lua语言,遇到了table这个奇葩的变量类型类似C语言中的数组,但是又比数组要强大,C语言的数组必须指定元素类型,比如int   x[10] ;double y[10];C语言定义数组的时候必须指定数组大小,可以使用mallocC++的数组相对又比较灵活一点儿了,int x[]=new int[];不能把数组的思想带到lua的table变量类型

2015-01-17 18:53:18 616

转载 CButtonST使用技巧(一)

本篇主要包括了以下的效果:1. 在按钮上加入Icon,使Icon和文字同时显示2. 显示平面按钮3. 使按钮上的图标可变4. 设置按钮在不同状态下的底色和文字颜色5. 设置图标和文字的位置6. 根据Icon的形状设置按钮的形状7. 添加Tooltips以下是Basic Features的演示界面:效果一:在按钮上加入I

2015-01-17 12:15:34 1526

原创 建立动态库dll工程时候也会自动生成静态库lib

R.T.

2015-01-16 15:08:59 708

原创 如何优雅的查看VS2010的工程是DLL还是LIB还是EXE的

在解决方案选项框中,选中工程后,右键选择property(属性)在【配置属性】中【常规】  查看【配置类型】下图显示的是动态库 DLL

2015-01-15 17:18:34 1329

原创 如何查看dll文件

网上有很多查看dll的工具,但是这里要介绍的是VS自带的dumpbin工具来查看安装好VS之后(楼主安装的是VS2010)打开VS 命令提示 工具(界面类似CMD)然后在工具中输入 dumpbin -exports  dllname.dll   这样就能查看dll中的函数信息

2015-01-15 17:11:21 5933 1

原创 notepadhesublime主题推荐

Notepad++采用 Obsidian主题    Consolas字体 11号Sublime采用的flatland主题下载地址https://github.com/thinkpixellab/flatland下载之后 放在package目录下面然后在user配置如下:{"theme": "Flatland Dark.sublime-theme","color_sche

2015-01-15 13:02:36 1267

原创 VS2010 biMSB3073

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(103,5): error MSB3073: 命令“F:\RTXDownload\TenPack\TenPack\stub\auto_version.py F:\RTXDownload\TenPack\TenPack\stub\C:\Pro

2015-01-15 10:10:44 703

转载 彻底解决 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏头痛万分,查了各种资料一直无解,今天为了封装资源,嵌入清单,所以不惜血本仔细找了下,终于有解决方案了。平时我们都是将 项目-->项目属性-->配置属性-->连接器-->清单文件-->嵌入清单 中的“是”改为“否”,不让他将清单嵌入,自然也用不着转换了,所以轻松编译。虽然麻烦点,每次新

2015-01-15 09:56:44 549

原创 安装VS2010的过程遇到VC10.0 Runtime组件安装失败怎么解决

在安装VS2010过程中,安装失败,提示VC10.0 runtime组件组件安装失败这时候可以将系统local/tmp文件夹下面的文件全删除掉,有提示正在占用的就不用管,跳过就行了

2015-01-15 09:56:19 11733 3

原创 打log

常见的C语言打log方法# define DLog(format, ...) printf(("[filename:%s]" "[func_name:%s]" "[line_number:%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); 这样可以接受可变长度的参数表...表示就是可变长度常见的android打log

2015-01-14 10:23:24 715

转载 使用ptrace跟踪进程

系统调用ptrace对gdb这种调试器来说是非常重要的,杯具的是,相关的文档却残缺不详–除非你觉得最好的文档就是内核源码!!下面,我会试着向大家展示ptrace在gdb这类工具中的作用.1. 介绍ptrace()是一个系统调用,它允许一个进程控制另外一个进程的执行.不仅如此,我们还可以借助于ptrace修改某个进程的空间(内存或寄存器),任何传递给一个进程(即被跟踪进程)的信号(除

2015-01-13 11:02:18 1561

转载 Linux GCC常用命令

Linux GCC常用命令1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年

2015-01-11 18:57:28 356

转载 C & C++的编译过程详解

C/C++编译过程    C/C++编译过程主要分为4个过程  1) 编译预处理  2) 编译、优化阶段  3) 汇编过程  4) 链接程序    一、编译预处理    (1)宏定义指令,如#define Name TokenString,#undef等。 对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,    

2015-01-11 18:56:48 442

转载 VIM进阶大全

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类

2015-01-11 14:41:21 457

转载 grep、egrep、fgrep命令

一、grep、egrep、fgrep命令  本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式、方法。(注释:文中fg代表例子,)1.1、基本定义:        grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜

2015-01-11 14:39:35 581

转载 RM指令长度及数据类型

RM指令长度及数据类型 ARM微处理器的指令长度可以是32位(在ARM状态下),也可以为16位(在Thumb状态下)。 ARM微处理器中支持字节(8位)、半字(16位)、字(32位)三种数据类型,其中,字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0)。ARM处理器运行模式

2015-01-09 18:52:03 787

转载 Android下通过hook技术实现透明加解密保障数据安全

Android下通过hook技术实现透明加解密保障数据安全对于用户在Android移动设备商保存重要的隐私文件,通常采用一些加密保存的软件。但在手机上实现隐私空间的软件鳞次栉比,但是问题在于打开文件都需要使用该隐私空间,将加密文件解密到临时文件,然后再选择应用程序打开文件。 一、前言对于用户在Android移动设备

2015-01-08 09:24:31 1014 1

空空如也

空空如也

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

TA关注的人

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