自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Windows编程】系列第七篇:Menubar的创建和使用

上一篇我们学习了利用windows API创建工具栏和菜单栏,与上一篇紧密联系的就是菜单栏,菜单栏是一个大多数复杂一些的Windows应用程序不可或缺的部分。比如下图就是Windows自带的记事本的菜单栏:菜单一般都是在标题栏下,工具栏以上,常常叫主菜单或顶级菜单(top-level menu),顶级菜单可能还会有弹出菜单(popup menu)或子菜单(submenu)。弹出菜单

2015-07-30 11:24:54 939

原创 【Windows编程】系列第五篇:GDI图形绘制

上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图。Windows的GDI函数包含数百个API可供我们使用,本篇把最常用的GDI绘图做一个讲解。GDI可以绘制点、直线曲线、填充封闭区域、位图以及文本,其中文本部分已经在上一篇中将了,请参考【Windows编程】系列第三篇:

2015-07-09 23:15:58 909

转载 http://blog.csdn.net/lengshine/article/details/5470545

中文编码判断

2017-10-03 12:59:49 195

原创 适用的字符串hash函数

就当做一个笔记吧:unsigned int BKDRHash(char *str){ unsigned int seed = 131; // 31 131 1313 13131 131313 etc... unsigned int hash = 0; while (*str) { hash = hash * seed + (*str++); } return (hash

2016-09-02 20:52:33 364

原创 颠倒32位数二进制位序

#include #include unsigned int GetRevertBit(unsigned int v){    v = ((v >16) & 0x0000FFFF);    v = ((v > 8) & 0x00FF00FF);    v = ((v > 4) & 0x0F0F0F0F);    v = ((v > 2) & 0x33333333

2016-01-28 14:42:53 2603

原创 获得32位数二进制位的第一个1的位置

#include #include int getfirstone(unsigned int v){    v ^= v - 1;    v = (v & 0x55555555) + ((v >> 1) & 0x55555555);    v = (v & 0x33333333) + ((v >> 2) & 0x33333333);    v = (v + (v

2016-01-27 22:15:04 3549

原创 【Windows编程】系列第十一篇:多文档界面框架

前面我们所举的例子中都是单文档界面框架,也就是说这个窗口里面的客户区就是一个文档界面,可以编写程序在里面输入或者绘制文本和图形输出,但是不能有出现多个文档的情况。比如下面的UltraEdit就是一个典型的多文档界面,他可以同时编辑多个文档,每个文档还可以最大化,最小化等等,我们今天就来看看多文档的基本框架是怎么实现的。多文档界面的框架创建需要几下几步。主框架窗口创建主框

2015-09-04 14:32:24 471

原创 【Windows编程】系列第十篇:文本插入符

大家知道,在使用微软的编程环境创建工程时会让你选择是控制台模式还是Windows应用程序。如果选择控制台的console模式,就会在运行时出现一个黑洞洞的字符模式窗口,里面就有等待输入一闪一闪的插入符。输入光标从DOS时代就存在,但是在Win32中赋予了更强大的功能。下图就是Windows的CMD窗口,其中的输入点就是插入光标:要注意的是这里的插入符或插入光标并不是Windows中

2015-08-20 21:23:33 1168

原创 【Windows编程】系列第九篇:剪贴板使用

上一篇我们学习了常见的通用对话框,本篇来了解剪贴板的使用,它常用于复制粘贴功能。剪贴板是Windows最早就加入的功能,由于该功能非常实用,我们几乎每天都会使用到。通过剪贴板,我们就可以将数据从一个应用程序传递到另一个应用程序,是一种简单的进程间通信。许多文档处理软件都有复制、剪切、粘贴功能,这些都是用Windows剪贴板实现的,当然我们也可以在我们的程序中实现自己的剪贴板功能,本

2015-08-13 22:50:57 1747

原创 【Windows编程】系列第八篇:通用对话框

上一篇我们学习了菜单的基本编程,本篇来了解一下通用对话框的使用。Windows系统之所以是目前最流行的桌面系统,也是因为Windows有一套标准化,统一友好的交互界面,比如菜单、工具栏、状态栏以及各个控件。当然除了这些单独的控件之外,对于像文件打开、保存对话框,字体对话,颜色对话框等对于Windows本身会用到,在很多第三方的应用程序中也会用到。因此微软公司也早就清楚这种现实情况会存在,所

2015-08-06 22:27:35 2417

原创 【Windows编程】系列第六篇:创建Toolbar与Statusbar

上一篇我们学习了解了如何使用Windows GDI画图,该应用程序都是光光的静态窗口,我们使用Windows应用程序,但凡稍微复杂一点的程序都会有工具栏和状态栏,工具栏主要用于一些快捷功能按钮。比如典型的windows应用程序的上面是菜单栏,从菜单栏我们可以选择应用程序提供的各种功能,但是有的功能比较常用,且不能放在第一级菜单,需要进入二级、三级甚至更多的菜单才能选择。显然这样使用起来

2015-07-23 08:19:46 2601

原创 【Windows编程】系列第四篇:使用Unicode编程

上一篇我们学习了Windows编程的文本及字体输出,在以上几篇的实例中也出现了一些带有“TEXT”的Windows宏定义,有朋友留言想了解一些ANSI和Unicode编程方面的内容,本章就来了解和学习一些Windows下关于ANSI和Unicode方面的编程基础。计算机最早在美国诞生,所以最开始都是以英语为作为交互语言,由于只有26个字母,用一个字节(范围-128 ~ 127)表示

2015-07-02 21:36:55 508

原创 【Windows编程】系列第三篇:文本字符输出

上一篇我们展示了如何使用Windows SDK创建基本控件,本篇来讨论如何输出文本字符。在使用Win32编程时,我们常常要输出文本到窗口上,Windows所有的文本字符或者图形输出都是通过图形设备接口(GDI)进行的,Windows的三大核心组件之一的GDI32.dll封装了所有的文本和图像输出。GDI基本知识Windows下要绘图和输出文本,都是通过GDI(Graph

2015-06-25 20:19:00 949

原创 【Windows编程】系列第二篇:Windows SDK创建基本控件

在Win32 SDK环境下,怎么来创建常用的那些基本控件呢?我们知道如果用MFC,简单的拖放即可完成大多数控件的创建,但是我们既然是用Windows SDK API编程,当然是从根上解决这个问题,实际上MFC的下层也是通过这些API完成的。实际上控件也是窗口,只不过是被微软预先创建好的一种窗口类,比如button就是一个类名为“BUTTON”的类。既然控件实际上是窗口,当然也是用C

2015-06-18 21:54:02 656

原创 ubuntu编译最新版本WebKit

好久都没更新webkit 源码在ubuntu上编译了,网上搜了一下,基本上都是早期编译的webkit版本。可能是大家都去搞高大上的谷歌浏览器了吧。今天就以ubuntu14.04版本作为编译环境来讲讲webkit编译一、下载源码wget http://builds.nightly.webkit.org/files/trunk/src/WebKit-r174650.tar.bz2或者...

2015-04-22 22:10:48 226

转载 ubuntu编译最新版本WebKit

好久都没更新webkit 源码在ubuntu上编译了,网上搜了一下,基本上都是早期编译的webkit版本。可能是大家都去搞高大上的谷歌浏览器了吧。今天就以ubuntu14.04版本作为编译环境来讲讲webkit编译一、下载源码wget http://builds.nightly.webkit.org/files/trunk/src/WebKit-r174650.tar.bz2

2015-04-22 22:03:17 459

转载 android apk 防止反编译技术第四篇-对抗JD-GUI

又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊。好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法。前三篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/393372)、运行时修改字节码(http://my.oschina.net/u/2323218/blog/396203)和伪加密(http://my.os

2015-04-20 21:02:00 463

原创 android apk 防止反编译技术第四篇-对抗JD-GUI

又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊。好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法。前三篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/393372)、运行时修改字节码(http://my.oschina.net/u/2323218/blog/396203)和伪加密(http://my.oschina...

2015-04-20 20:59:23 736

解密FFmpeg播放track mode控制

上一篇文章我们解决了在FFmpeg下如何处理H264和AAC的扩展数据,根据解出的NALU长度恢复了H264的起始码和AAC的ADTS头,这样一般来说播放是没有问题。本篇文章来谈谈如何实现基于FFmpeg的track mode控制,也就是如何用FFmpeg提供的功能来实现基本的seek、快进、快退。好了,废话少了,下面开始基于FFmpeg的track mode之旅。FFmpeg提供了一个se...

2015-04-19 22:27:54 163

原创 解密FFmpeg播放track mode控制

上一篇文章(http://blog.csdn.net/yang_danny/article/details/45016593)我们解决了在FFmpeg下如何处理H264和AAC的扩展数据,根据解出的NALU长度恢复了H264的起始码和AAC的ADTS头,这样一般来说播放是没有问题。本篇文章来谈谈如何实现基于FFmpeg的track mode控制,也就是如何用FFmpeg提供的功能来实现

2015-04-19 22:11:01 606

原创 小菜学Chromium之OpenGL学习之二

在这个教程里,我们一起来玩第一个OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架.在CodeBlock里创建一个新的GLUT Win32程序(不是console控制台程序)后,我们还需要链接OpenGL库文件。代码的前4行包括了我们使用的每个库文件的头文件。如下所示:#include <windows.h> //...

2015-04-17 22:35:31 87

转载 小菜学Chromium之OpenGL学习之二

在这个教程里,我们一起来玩第一个OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架.在CodeBlock里创建一个新的GLUT Win32程序(不是console控制台程序)后,我们还需要链接OpenGL库文件。代码的前4行包括了我们使用的每个库文件的头文件。如下所示:#include // Windo

2015-04-17 22:28:05 336

转载 webkit浏览器常见开发问题

前段时间有人问我一个简单的问题,html如何创建解析的? 我讲了一大堆,什么通过DocumentLoader, CachedResourceLoader, CacheResource, ResourceLoaderScheduler, ResourceHandle这些类一步一步的完成cache查找然后请求下载等等。      滔滔不绝,直到我调试xml解析时,我才发现好多问题都与理解的

2015-04-15 23:16:34 279

原创 webkit浏览器常见开发问题

前段时间有人问我一个简单的问题,html如何创建解析的? 我讲了一大堆,什么通过DocumentLoader, CachedResourceLoader, CacheResource, ResourceLoaderScheduler, ResourceHandle这些类一步一步的完成cache查找然后请求下载等等。      滔滔不绝,直到我调试xml解析时,我才发现好多问题都与理解的不一致...

2015-04-15 23:08:13 150

转载 程序猿的健康之路

当我第一次听到加班的时候,其实我是是拒绝的,我对领导说我拒绝;领导说可以加工资,就这样我加了一个月的班之后,我的工资就DUANG的一下,上去了。之后我每个月都在加班,我也告诉我身边的朋友加班,白天不用怎么干活,晚上可以加班,周末可以加班,假期可以加班,之后工资就duang duang duang 的上去了;就这样我的加了几年的班之后,我的工资在duang duang duang的向

2015-04-15 22:53:51 364

转载 Android图片开发内幕--基础篇

前言:本来我是做电视应用的,但是因为公司要出手机,人员紧张,所以就抽调我去支援一下,谁叫俺是雷锋呢!我做的一个功能就是处理手机中的应用ICON,处理无非就是美化一下,重新与底板进行合成和裁剪,用到了很多Bitmap的知识。本来之前一直想写一些关于Bitmap的博客,正好这是个机会,因此Bitmap那些事系列博客诞生了。这个系列我会把学习Bitmap的一些知识发布出来供大家参考和交流。

2015-04-14 21:16:46 407

原创 解密H264、AAC硬件解码的关键扩展数据处理

    通过上一篇文章,我们用ffmpeg分离出一个多媒体容器中的音视频数据,但是很可能这些数据是不能被正确解码的。为什么呢?因为在解码这些数据之前,需要对解码器做一些配置,典型的就是目前流行的高清编码“黄金搭档”组合H264 + AAC的搭配。本文将讲述H264和AAC的关键解码配置参数的解析,如果没有这些配置信息,数据帧往往不完整,导致了解码器不能解码。H264的配置信息解析前...

2015-04-14 20:53:31 147

原创 解密H264、AAC硬件解码的关键扩展数据处理

通过上一篇文章,我们用ffmpeg分离出一个多媒体容器中的音视频数据,但是很可能这些数据是不能被正确解码的。为什么呢?因为在解码这些数据之前,需要对解码器做一些配置,典型的就是目前流行的高清编码“黄金搭档”组合H264 + AAC的搭配。本文将讲述H264和AAC的关键解码配置参数的解析,如果没有这些配置信息,数据帧往往不完整,导致了解码器不能解码。H264的配置信息解

2015-04-13 00:37:08 1467

转载 解密多媒体封装解封装框架

       上一篇文章我们搭好了环境并编译出所需的ffmpeg库,本篇我们讨论如何利用ffmpeg提供的API函数进行多媒体文件的解封装(demux)过程。在讲解之前,我们需要了解一些基本的多媒体文件知识,大虾请飘过。容器格式:不管是音频文件还是视频格式的文件,都是一个多媒体的容器,即container,比如常见的视频容器格式有avi、mp4、mkv、flv、rm/rmv

2015-04-11 20:56:06 509

原创 android apk 防止反编译技术第一篇-加壳技术

    做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习。现在将最近学习成果做一下整理总结。学习的这些成果我会做成一个系列慢慢写出来与大家分享,共同进步。这篇主要讲apk的加壳技术,废话不多说了直接进入正题。一、加壳技术原理所谓apk的加壳技术和pc exe的加壳

2015-04-11 20:42:03 623

转载 Android Metro风格的Launcher开发系列第三篇

前言:各位小伙伴,又到了每周更新文章了时候了,本来是周日能发出来呢,这不是赶上清明节吗,女王大人发话了,清明节前两天半陪她玩,只留给我周一下午半天时间写博客,哪里有女王哪里就有压迫呀有木有!好了闲话少说,上一篇博客(Android Metro风格的Launcher开发系列第二篇)说到Launcher主体框架用ViewPager来实现,这一篇博客咱们来说说每一个page的具体实现。

2015-04-11 20:33:17 405

转载 Android Metro风格的Launcher开发系列第二篇

前言:各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客 Android Metro风格的Launcher开发系列第一篇写了如何配置Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲!

2015-03-30 22:25:36 428

FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译

      前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了。今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考。本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点:一、重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮...

2015-03-29 23:44:14 725

原创 FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译

前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了。今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考。本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点:一、重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),为什么?

2015-03-29 23:31:12 2630

转载 chromium浏览器开发系列第一篇:如何获取最新chromium源码

背景:     最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧。于是乎,本文顺理成章。由于有些细节必需描述清楚,所以这次先讲如何拿到chromium的源码,下次直接把编译过程写出来,供大家参考。前期准备:     之前的chromium源码都是用svn来维护,所以源码地址网上贴的到处都是,我看了一下,svn的版本最新的

2015-03-26 21:46:32 501

原创 【转载】vim带你装逼带你飞(一)

前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选。其实操作系统只是我们使用的一个工具,windows也好linux也罢,自己用的好才是真的好。但是好的开发工具能让我们事半功倍。   先谈谈我的编程开发工具之路,source insight3.5这都是刚工作必备之工具,简直就代码阅读开发之神器。但...

2015-03-25 22:07:22 135

转载 vim带你装逼带你飞(一)

前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选。其实操作系统只是我们使用的一个工具,windows也好linux也罢,自己用的好才是真的好。但是好的开发工具能让我们事半功倍。  先谈谈我的编程开发工具之路,source insight3.5这都是刚工作必备之工具,简直就代码阅读开发之神

2015-03-25 21:51:03 349

原创 【转载】Android Metro风格的Launcher开发系列第一篇

前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用。但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的目的开始写一个系列的文章,我会把我做一个项目的详细过程分享给大家,供大家参考和交流。好了,评书开讲!可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于...

2015-03-23 22:46:21 59

转载 Android Metro风格的Launcher开发系列第一篇

前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用。但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的目的开始写一个系列的文章,我会把我做一个项目的详细过程分享给大家,供大家参考和交流。好了,评书开讲!可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于源码

2015-03-23 21:26:36 334

空空如也

空空如也

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

TA关注的人

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