自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牧秦丶

C++ / Android / React.js / Node.js / 杂七杂八

  • 博客(53)
  • 资源 (8)
  • 收藏
  • 关注

原创 Mac 上好用的软件推荐

Mac 上好用的软件推荐。

2017-02-09 11:54:23 7352

原创 Android Activity 创建&启动流程总结

用流程图展示了 Android Activity 的创建流程。

2016-11-23 11:59:03 798 1

原创 Android View 绘制流程总结

整理了一下 Android 上 View 绘制的流程。

2016-11-22 17:33:30 864 1

原创 Android ContentProvider 使用

简要介绍了 Android 中 ContentProvider 的使用。

2016-10-28 16:37:43 2881

原创 Android 中为图片生成卷角+圆角缩略图的方法

介绍了 Android 中为图片生成卷角+圆角缩略图的方法。

2016-09-22 16:25:24 960

原创 Android Drawable 详解

详细介绍了 Android 中一些常用 Drawable 的使用方法。

2016-09-22 11:36:38 19684

原创 Electron + React + Node.js + ES6 开发桌面软件

介绍了如何使用 Electron + React + Node.js + ES6 来开发桌面软件。

2016-06-22 17:21:05 34302 7

原创 Android OOM 排查与解决——图片加载优化

本文阐述分析了 Android 上面 OOM 出现的原因以及一些排查方法。并特别针对图片加载占用内存导致 OOM 的问题,提出了一些解决办法。

2016-03-07 09:37:37 5075

原创 git 常用的命令行操作

简要介绍了 git 的一些常用命令以及文件状态流转方式。

2015-12-25 17:34:03 893

原创 Android-SlideSupport-ListLayouts 使用简介

Android-SlideSupport-ListLayouts 是一款用于为 Android 上的 List 排布提供左滑右滑操作的库。目前支持的 Layout 主要有: ListView、RecyclerView、ScrollView、ExpandableListView 等。另外还可以与 SwpieRefreshLayout、PullToRefresh 等等第三方库协同工作。

2015-12-25 14:53:36 1239

原创 【Cocos2d-x】支持 i18n 国际化(2)——i18n XML 解析生成头文件

通过 Python 脚本解析资源 XML,生成可供 C++ 程序使用的 .h 资源头文件。

2015-11-11 17:49:32 1745

原创 【Cocos2d-x】支持 i18n 国际化(1)——概述及实现

提出并实现了一种在 Cocos2d-x 中支持国际化 i18n 的方法。

2015-11-11 17:27:00 4357 1

原创 【Cocos2d-x】脚本生成资源头文件

简单介绍实现了一个 Cocos2d-x 资源头文件生成脚本,可以很方便的实现 Cocos2d-x 的资源到 C++ .h 头文件的映射。

2015-11-02 14:09:20 1173

原创 【Android】 从头搭建视频播放器(5)——将所有放在一起

将所有介绍过的模块结合起来,实现一个最终提供给上层使用的 StrawMediaPlayer。

2015-09-25 19:07:31 2498 10

原创 【Android】 从头搭建视频播放器(4)——屏幕旋转处理

1、介绍了屏幕旋转的检测及处理;2、介绍了 Activity Orientation 的切换及处理。

2015-09-25 18:40:36 4616

原创 【Android】 从头搭建视频播放器(3)——手势检测 & 控制

1、介绍了手势检测的方法;2、介绍了屏幕亮度 & 媒体音量的调节;3、实现了一个 MediaPlayerGestureController。

2015-09-25 17:35:29 4351 3

原创 【Android】 从头搭建视频播放器(2)——SystemMediaPlayerImpl

1、介绍了 Android 系统的 android.media.MediaPlayer 的状态迁移;2、介绍了使用 MediaPlayer 必须要处理的一些方法及回调;3、介绍了使用 MediaPlayer 的步骤;4、结合 BaseMediaPlayer 做出了一份 SystemMediaPlayerImpl 实现。

2015-09-25 15:50:43 2153

原创 【Android】 从头搭建视频播放器(1)——概述

1、简要介绍了实现一个播放器需要的基础组件; 2、介绍了 BaseMediaPlayer 的一个基础接口及实现。

2015-09-25 11:57:55 5327 2

原创 Android Gradle 本地化部署 maven

1、介绍了 Android Gradle 部署 maven 到本地;2、介绍了多 Module 互相引用时部署出问题的解决办法。

2015-08-11 13:37:13 1928

原创 升级 Windows 10 后 SVN 图标不显示的解决办法

简单介绍了系统升级到 Windows 10 之后,文件夹上 SVN 图标无法显示的解决方法。

2015-08-03 10:18:28 17691 6

原创 离线安装 Android Studio 更新

本文介绍了 Android Studio 的离线包安装。解决被“墙”的情况下,无法更新 Android Studio 的问题。

2015-05-18 20:46:30 7776

原创 Android Studio 打包及引用 aar

简要介绍了生成 aar 以及其他工程引用 aar 文件的一些方法。

2015-05-18 11:43:40 21117 2

原创 CString的部分实现剖析

该篇简要解析了ATL/MFC中CString的实现,以及CString中CopyOnWrite机制。并对GetBuffer和ReleaseBuffer的实现及正确使用做了深入探讨。

2013-09-03 19:45:13 2783 2

原创 反汇编系列(三)——函数篇

汇编中的函数调用我们需要着重讲述一下。一般我们用 call 发起调用,最后需要用 ret/retn/retf 来返回。我们逐个来看汇编中的函数调用。1、相关指令call  ADDRESS:发起调用,根据 ADDRESS 的地址决定是发起段内调用还是段间调用。当是段内调用时,将 eip 入栈,然后 jmp 到 ADDRESS 处;当是段间调用时,将 cs、eip 依次入栈

2012-10-18 10:55:49 2686

原创 反汇编系列(二)——堆栈篇

要反汇编程序,不可避免要接触到堆栈,你首先得会查看堆栈,知道堆栈在某一时刻的确切内容。首先,我们讲述一些与堆栈相关的基础知识。1、堆栈基础    汇编语言中的“堆栈”的含义与数据结构中堆栈的含义不同,尽管从操作上来说,它们都是“后进先出”,这个不用赘述。汇编中有一个寄存器esp指向当前栈顶,而栈底的位置是不变的,整个程序运行过程中,通过操作esp来操作堆栈,进行堆栈的压入、弹出及平

2012-10-17 18:05:49 2986 1

原创 反汇编系列(一)——工具篇

反汇编,也有人称为“逆向工程”,就是把 DLL 或者 EXE 程序逆向为程序员可读的汇编代码,方便我们理解程序。有时候我们需要分析别人的DLL或者程序,想看看它做了什么或者实现方案(请不要干坏事!),可能需要反汇编知识。我们首先需要借助一些反汇编利器。我强烈推荐的是IDA Pro,它的功能异常强大,对某些程序的反汇编,可以达到伪代码级别的反汇编——当然,这需要你具有扎实的汇编功底。

2012-10-17 16:39:14 4486

原创 WM_COMMAND 和 WM_NOTIFY 的区别

当我们按下一个菜单选项,或者一个控件需要通知父窗口一个事件发生(如鼠标单击、双击等),或者快捷键被按下时,Windows将会发送一个 WM_COMMAND 消息给父窗口。那么 WM_COMMAND 消息参数是什么呢?WM_COMMAND 消息来源WPARAM 高位WPARAM 低位LPARAM菜单0菜单 ID0快捷键1

2012-10-09 13:33:12 5788

原创 C++工具箱(四)——动画类之透明度渐变 & 大小渐变

例程代码下载上一章介绍了如何基于计时器设计一个通用的动画基类,这次我们通过从 CFrameAnimation派生,得到两个动画类:透明度渐变动画类CFrameAnimation和窗口大小渐变类CFrameSizeAnimation类。首先假设我们有一个通用窗口CWnd:namespace Util{class CWnd{public: BOOL Initializ

2012-09-15 17:35:08 1732

原创 C++工具箱(三)——动画类之基类

OK,我们已经讨论了单件和定时器了,该来点真格的了。这次我们来看看如何通过前面所述的定时器实现动画。我目前想到的动画有大小更改、Alpha 透明度更改、窗口位置更改等几种,后续会逐步加上。我们先来思考动画的实质。动画其实就是通过定时器,一步步逼近一个期望结果的过程。我们期望的动画类是这样的:1、接口简单、使用方便;2、可扩展。比如我们后续加上新的动画类时不必太费力;3、添加

2012-09-13 20:13:09 1866

原创 C++工具箱(二)——定时器

有时候我们需要用到定时器这样一个东西,但是我们如果去一个窗口里面 SetTimer,但我们又需要在一个非 UI 类(线程)里要用计时器,那么解耦就没有办法实现了。有没有更好的办法呢?答案是肯定的,我看可以写一个单件定时器类,用来管理定时控制,并且全局访问。你可能需要的知识有:单件模板类、Boost 等。我们期望的使用方式是:/** * \file timer.h * \au

2012-09-13 19:24:35 2607 1

原创 VC获取默认浏览器

如何获取系统当前的默认浏览器呢?呃,如果你说,去读 HKEY_CLASSES_ROOT\http\shell\open\command 的注册表值,也不是不可以,但在WIN7 下不一定正确。那么我是怎么知道的呢?昨天这样读了半天,发现总是不正确,我们将 Chrome 设为默认浏览器,发现 QQ 电脑管家弹出提示,然后果断打开之,发现:我们果断得到了一个注

2012-09-12 10:03:36 4503

原创 C++工具箱(一)——单件模版类

我们在工作中往往会用到单件类。但是我们知道单件类的实现就那么几步,如果系统中有多个单件类的话,去一个个写非常麻烦,那么怎么办呢?单件模版类就派上用场了:template class Singleton{public: Singleton() {} virtual ~Singleton() {} static _CoClass& GetInstance() {

2012-08-28 15:55:17 2156

原创 C++运算符重载需要注意的地方

有时候自己写一个类,需要重载运算符,但对于一些操作符(如==、、>等),可以在类里写,也可以在类外写。那么 C++ 编译器会去怎么调用呢?首先,我们知道,“重载” 机制可以允许多个函数有相同的函数名,但参数列表必须不同。C++编译器经过名字改编(name mangling),可以在调用时依据所传实参找到“最符合”的函数实体进行调用。而运算符重载亦是如此。首先,我们有一个类:

2012-08-28 09:21:23 1512

原创 C++的两个细节

细节总是烦人的,但又有人说了:“细节决定成败”。所以,只有将这些细节总结出来了。细节问题总是这样:你明明知道是这样做,但又有点不太确定,需要回去翻一遍才能继续。今天遇到两个:1、C++ 浮点数取整:#include floor: 向下取整;0.6  --> 0,-10.5  --> -11;ceil:  向上取整;0.6  --> 1,-10.5  --> -1

2012-08-22 17:31:42 868

原创 获取进程启动时间

我们有时候通过测试一个程序的启动时间来评估程序的性能,那么该怎么办呢?现在提出两种办法,各有优劣,请酌情采纳。1、通过一个辅助程序调用CreateProcess启动被测程序,在 CreateProcess命令行参数中传递当前TickCount,在被测程序的main 函数开头获取当前TickCount,并从命令行参数中解出启动进程的TickCount,执行减法即可;2、通

2012-07-16 17:22:05 4742

原创 SQLite的使用

最近频繁使用到 SQLite,越来越发现该数据库的好用。SQLite 是一款开源、轻量、本地化存储、功能强大的数据库,由于它的这些特性,使得人们在项目中广泛应用。首先,你可能要去www.sqlite.org去下载一份 SQLite,可能是编好的,如果没有,你可能需要自己去编一份,过程非常简单。先来看看 SQLite 在工程中的使用。它提供 sqlite3.h、sqlite3

2012-07-10 10:39:38 4928

原创 Windows下遍历文件目录

最近用到遍历文件目录,总结一下:#include WIN32_FIND_DATA fndData;HANDLE hFnd = INVALID_HANDLE_VALUE;hFnd = ::FindFirstFile(_T("D:\\Program Files\\*.*"), &fndData);if (hFnd == INVALID_HANDLE_VALUE){ ret

2012-07-03 16:55:13 7846

原创 事件对象Event的使用

最近使用到Event,做一下总结。1、对象的创建:创建了一个匿名的初始状态为“无信号”状态的Event。HANDLE _hEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL);2、信号状态切换:::SetEvent(_hEvent); // 设置为有信号状态.::ResetEvent(_hEv

2012-06-18 16:42:30 1424

原创 由C++绝对值函数想到的

这些天恰好要用到一个绝对值的函数。好吧,你会说这个直接用std::abs不就行了吗?对的,一开始我也是这样用的。但是如果去求最小的那个int的值的绝对值,就会导致输出不正确。如:int min_int = -2147483648;cout       得到的结果仍然是-2147483648!恰好我的程序有可能出现这样的情况。所以需要自己去完成一个。1、第一个版本:un

2012-05-09 14:16:23 2176

原创 Lua与C/C++交互——C/C++调用Lua脚本

Lua与C/C++交互——C/C++调用Lua脚本

2011-10-07 15:24:27 8568 1

C++工具类——动画Demo

一个C++结合Boost的动画类。有较高的解耦效果。 扩展性好,方便易用。

2012-09-15

Lua与C/C++交互——C/C++调用Lua脚本

简要实现了C/C++中调用Lua脚本的技术。 通过用Lua脚本输出一个便签,来研究C/C++与Lua的交互技术。

2011-10-07

C/C++与汇编交互例程

一份C/C++与汇编交互的例程源码。例子介绍请参见我的博客《C/C++与汇编交互》一文。

2010-11-06

Direct2D坐标变换例程

用C++实现的一份D2D坐标变换例程。详细介绍了D2D中的平移、旋转、投射、缩放变换。 详情请参看我的博客《Direct2D中的坐标变换》一文。

2010-10-05

Direct2D入门C++例子

一份用C++写的Direct2D入门例子程序。需要在Win7或Vista SP2下运行。关于入门的文章,大家可以去我博客查看。

2010-10-04

一份MFC开发的扫雷游戏

这是用MFC开发的扫雷游戏!感兴趣的可以玩下。

2010-05-14

从C++导出类到Python

这个例子示范了如何从C++中导出一个类到Python。轻松的扩展Python模块!

2010-03-23

C++扩展Python源码

一份用C++扩展Python的源代码。例子虽然简单,但却有启发意义。 特别是,这是用C++给Python3.1环境写的一个扩展小例子。

2010-03-14

空空如也

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

TA关注的人

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