自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

珠穆朗玛

看前面,黑洞洞

  • 博客(35)
  • 收藏
  • 关注

原创 iOS 平台的应用加固

Android 平台的应用开发者,由于 Java 语言的天然特性,很早之前就意识到有必要对自己的产品进行业务逻辑、数字资产方面的保护,从而寻求混淆/加密/加壳/加固工具的帮助。也正是基于此需求,催生了一票公司,以这类技术为其核心能力,国内较知名的如梆梆、爱加密,二线的有娜迦之类的,一度连 BAT3 的应用分发市场也都有自己的加固平台。但是在 iOS 平台上,这类需求被广泛忽略了,原因是多方面的...

2018-04-19 15:46:06 1189

原创 Windows 8 初体验

不管喜欢不喜欢,Windows 8 还是来了。得益于虚拟机技术的强大,老汉在 Fusion 里安装了一份,一是想体验一下 Windows 8,二是想体验一下 Visual Studio 2012 的 Windows Phone 8 手机开发环境。安装过程是很顺利的,把从微软申请的序列号填入,安装完毕后也就自动激活了。安装时只创建了一个本地账户,而没有绑定 Microsoft 账户。特别要提一下

2012-11-06 16:36:47 3799

原创 BlackBerry 10 Jam 大会小结及 Dev Alpha 设备初体验

7 月 6 日,RIM 在北京千禧大酒店举行了一次开发者大会。到场的大概有三四百人,其中部分来自于其他城市,好像还有从国外赶来的。会上,RIM 列举了 BlackBerry 10 的三大理念:Flow、Connect、Extend。在播放的几段视频中对这些理念也作了相关的展示。令我印象深刻的是其崭新的时间轴拍照模式,这一亮点用最通俗的语言来形容,那就是很有“苹果范”儿,非常值得期待。视频中的另

2012-07-12 18:17:44 2122

原创 有趣的 realloc 函数

在 C 语言中,我们最熟悉的函数排行榜上,malloc 和 free 想必名列前茅,而 realloc 则可能就要靠后了。不过你知道吗,有了 realloc 函数,你甚至可以不使用 malloc 或者 free,而是由它一力承担。该函数的原型如下:void* realloc(void* ptr, size_t size);其本职工作,乃是在 ptr 参数所指向的内存块出现容量不足时进行

2012-05-30 10:17:27 2005

原创 fedora 下 Java 的中文显示

昨天在家无聊的时候,给 fedora 里安装了个 Oracle Solaris Studio。安装时他说要先安装 JRE,便也由得它,听它的装上了。结果启动 Studio 的时候发现所有的中文都显示为方框,猜测大概是 Java 的什么配置不对,结果打开 Java 的控制面板,里面的中文也是方框。网上搜来的解决方案备忘如下(在终端中操作)。1、进入到 java 的安装目录(我的是 /usr/ja

2012-03-26 21:26:56 2116

原创 64 位整数格式化的小知识

在代码里需要用到对 64 位整数的格式化输出,结果应该是以十六进制的形式输出的长度为十六的字符串,不足十六个字母的,左端以零补齐。按照惯性思维,我的代码之前是这样写的:sprintf(szBuffer, "0x%016llX%s", ullValue, pszValue);在 Linux 下,无论是 Qt Creator 的工程里,还是 CodeLite 的 g++ 工程里,输

2012-03-21 17:50:38 3127

原创 Windows 消息机制浅析

1. Windows 的历史中国人喜欢以史为鉴,而事实也确实是,如果你能知道一件事情的来龙去脉,往往可以更容易地理解事物为什么会表现为当前这样的现状。所以,我的介绍性开场白通常会以一段历史开始。不过,我不会以精确到年月日的那种方式详细讲述,而是选取几个对我们的编程生涯有重要影响的关键点。Windows 是真正的图形化界面操作系统的普及者,无论任何人,争夺什么第一个实现的 GUI、第一个商业化的 G...

2012-02-28 23:16:50 8649 8

原创 Java 和优雅

Java 语言的语法是以优雅著称的。至少我接触过的很多书籍、资料是这么说的,当然,以我数百行的 Java 编程经验来讲,我也在大多数的情况下感受到了这种优雅,直到遇到一个特殊情况。这个情况是这样的。假设你写了一个数据访问的管理器,其中有一个方法提供给使用者以获取数据的能力,用我熟悉的 C 或者 C++,我会很快写出类似如下的函数定义:size_t DataManager_GetData

2012-02-09 17:15:47 3577 1

原创 Unix/Linux 桌面环境相关知识备忘

多年前认识几位 Unix 下的资深开发人员,例如老许,随意兄等,当时正在对 Windows 下的用户界面相关领域做研究,比如 win32k.sys 里面的东西,DirectUI/NetUI 的实现原理,如何做外挂式的窗口风格切换器(类似于 WindowBlinds 那样的机制在一个应用内或者整个系统内的应用),为了做知识延展,曾经请教过他们 Unix/Linux 下 X 窗口系统的知识。尽管他们专

2012-01-27 19:34:05 2197

原创 闲谈字符和字符集以及编码(下)

在本文的上篇中,大致介绍了一下字符集是个什么东西,以及与汉字相关的几个字符集的发展历程,在接下来的这个部分里,我计划谈一谈上篇文末所提到的那两个东西,一个是 UCS,一个是 UTF。需要提前说明的是,有关 Unicode 的信息在网上的散布很零散,有的信息被广泛传播但是已经过时,甚至有的文中都没有表明该文撰写的时间点,比较权威的信息源,例如 Wikipedia,对于某些词条的解释也是模糊不清甚

2011-12-08 17:56:58 2309 1

原创 线程和进程的关系之比喻

线程和进程的关系,或者两者之间的异同,往往会是许多公司的面试题之一,即使不是,也会是很多面试官的口头问题之一。对操作系统的了解不够深入的人,往往不知道该怎么描述这二者的区别与联系,最简单方式莫过于背书:进程是操作系统分配资源的最小单元,是资源的所有者,而线程是操作系统任务调度的最小单元,一个进程可以包含多个线程,至少需要一个线程。听起来似乎头头是道,其实再深入一些就会捉襟见肘,比如,知道什么是 T...

2011-06-28 21:20:00 4372 3

原创 应用技术的方向

云端化、虚拟化、移动化。 

2011-05-31 10:14:00 1905

原创 IT168 年初的采访稿

2011 年 01 月 26 日 作者:景保玉IT168:你目前从事 Symbian 平台的哪个版本开发?你认为 Symbian 近几年的发展变化对于开发者有哪些影响?有无帮助?这些变化体现在哪些方面?Dandy Cheung: 我几乎算是从事所有移动终端平台的开发吧。Symbian 的近几年发展对于开发者的影响不大,因为它的发展几乎都是茫然无序的,试图搞好几个东西,却什么也没搞好。无论是 S60...

2011-05-22 21:10:00 1819

原创 S60 第五版模拟器上无法调试的问题

昨天,同事突然来找我,说是编译出来的程序,在 S60 第五版的模拟器上有问题,只能在第一次的时候顺利打开,退出再次进入,则失败。表现的现象有两种,如果是用鼠标在功能表中点击进入,则没有任何提示,如果是用键盘上下键定位图标然后回车,则会报“功能表:系统错误(-1)”。该同事素日也是以技术过硬著称的,这次也事先做了不少测试,告诉我一个听起来莫名其妙的规律:mmp 文件中有两个 cpp,注释掉就正常,放开就出问题,神奇的地方在于,这两个 cpp 中的类,并没有在任何地方使用到。第一个反应是存在全局对象,经过仔细的

2011-05-04 17:56:00 1862

原创 折磨 SlickEdit

怕鬼遇鬼。一年前在做 E32 文件解压的时候就发现,它的压缩算法有两种,一种是 deflate,一种是 byte-pair。当时孤陋寡闻,见识不广,采用后一种压缩算法的映像根本没有见到过,所以只是疑虑了一下,也没太在意。结果今年就见到了,是在 Nokia 自己的一款软件产品里。只好借此机会了解一下。这才发现,原来 mmp 文件中可以把 E32 文件的压缩算法指定为 byte-pair。逐步深入,更...

2011-04-19 16:15:00 2501

原创 说服罢工的 Cygwin

久远之前安装的 Cygwin,被闲置了一段时间,昨天要用却发现不干活了。具体的表现在于,进入命令行下,绿色显示的用户名提示符看不到,执行任何命令都说找不到。感觉和环境变量有关系,在系统的命令提示符下看 set 的输出,没有找到可疑线索。求教于三火兄,三火兄第一时间告诉我说确实和环境变量有关,不过是在注册表里,但具体路径不记得了。于是用“Cygwin 注册表”做关键字搜索,找到了注册表路径是:HKE...

2011-04-07 10:18:00 2037

原创 黑莓的机会?

前几天还在说,看 Nokia 能不能把 Myriad 的 Alien Dalvik 移植到 Symbian 上,结果昨天就看到了黑莓要在自己的平台上使用 Alien Dalvik 的小道消息,不知道这把 RIM 能不能玩儿成。我们每天都在大谈开放,其实兼容是开放的很大一个方面。它不止是代表了平台或者技术的开放性,关键是对一批(老)用户的接纳姿态上的开放。以兼容为傲的微软这次的 Windows Ph...

2011-02-28 16:18:00 1872

原创 诺基亚与微软结盟事件杂谈

消息已经公布好几天了,在业界的震动仍然在持续,很多的观察家、分析师、技术专家、行业专家都在发表自己的看法,在声音上,并不是一边倒,大致属于毁誉参半的情形。对于这件事,我的看法和网络上另外一位人士的看法很有重合之处,从总体上比较看好。当然,也有些微的不同,有兴趣的朋友可以先点击查看这里,然后再回来。我在之前的一片文章里曾经说过,诺基亚在领导协调大型软件项目上是有短板的,所以 Maemo 项目才会还没...

2011-02-19 11:23:00 2158 9

原创 移动格局大变革?

今天诺基亚和微软达成了合作,移动领域的格局看来要有大变化了,历史性的一天。

2011-02-11 15:55:00 1777

原创 Xoom 试用小记

好歹也是业界人士,听说摩托刚刚发布了 Xoom,于是托朋友搞一台来体验一下,昨天晚上拿到了样机。先说一下外观。总体尺寸上比 iPad 要细长,宽度能比 iPad 窄去一指还多,长度则略长半指上下。厚度方面,一起平摆在桌子上看,则几乎不差分毫。重量呢,入手感觉就比 iPad 要沉,即使是对于我这个一贯认为一定要有分量才能感觉东西上档次的人来说(就因为这个原因,我对三星的轻飘飘的手机没有任何兴趣),也...

2011-01-09 09:11:00 3254 4

原创 宏的使用

宏的使用一、宏的概念宏,即macro的翻译。该词汇使用范围目前比较广泛,例如,微软把Office系列产品中的VBA脚本代码也使用宏来指称;一些其他软件也会把某些执行动作的序列录制为脚本,称之为宏(例如常用的文本编辑器UltraEdit);在宏汇编语言(如MASM或者TASM)中,宏的使用形式上更接近于子函数。这些都不是我们今日讨论的宏。我们要讨论的,是像C/C++这样的语言中所使用的宏,而且主要以C/C++语言为讨论的覆盖范围。之所以这么说,是因为有其他的语言(如Delphi,或者C#)也都实现了相同的机制

2010-12-22 22:32:00 2969 4

原创 兼容,让生活更美好

这几天相当不爽,几乎每天都要有大骂 Nokia 的冲动,这个公司在系统的兼容性方面,积累几乎是 Level 0。第一件事情是,原本在 S60 第三版和第五版上用的好好的一个驱动程序,到 Symbian^3 的 N8 上无法加载。把手底下一个兄弟着急上火的要命,排查到最后才发现,原来一个很重要的类再次出现了二进制不兼容,新增的两个虚函数是原有两个函数的重载形式,不知道是哪个二把刀工程师写得,没有按顺...

2010-12-15 16:56:00 754 1

原创 程序的一生

一、程序的诞生1. 概览程序,是我们天天接触的东西。而且在很大意义上,我们是它们的缔造者,不过,由于被现代化社会劳动的特性所左右,在创造过程中我们大量地使用了各种工具,甚至使得我们对于自己的作品有些什么特质都没有能够充分了解,这不能不说是一件遗憾的事情。下面是一个 Symbian 程序从源代码以及相关的资源或者数据,生成最终的可执行程序的过程:这张图有点老,aif 现在已经过时,不过整个过程还基本...

2010-10-25 22:11:00 1117 1

原创 字节那些事儿

1、前言作为一名 C/C++ 程序员,字节是我们天天都要与之打交道的一个东西。我们和它熟稔到几乎已经忘记了它的存在。可是,它自己是不甘寂寞的,或迟或早地,总会在某些时候探出头来张望,然后给你一个腿儿绊。其实,只要你真正了解了它的底细,你就会畅行无阻。在本文中,我们将首先简要了解一下字节的概念,然后着重了解一下字节序问题和字节对齐问题。注:笔者已经尽最大努力保证本文信息的正确性,但确实无法提供百分之百的担保。2、什么是字节我们知道,二进制计算机(也就是我们目前接触到的几乎所有的计算机)的最小数据单位是位(bi

2010-09-13 19:01:00 19981 99

原创 实现在头文件

1、引子这篇文章的题目念起来比较怪,不好意思,我是参照《爱在西元前》这样的句式构造来的,希望读者能喜欢。原本计划写成《头文件里的类实现》,可是想了想还有函数,如果写成《头文件里的类和函数的实现》,又太长,所以就这样了。在平常的 C/C++ 开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个 .h 的头文件里放声明,对应的 .c 或者 .cpp 中放实现。从开始接触,到熟练使用,几乎已经形成了...

2010-08-03 18:51:00 1979 6

原创 Symbian 程序自定义入口点以及使用 ARM 汇编的一点记录

洞经常是越钻越大。本来是要尝试如何能使 S60 程序摆脱缺省的启动代码,而是用自己的启动代码的。追寻这个目标的第一步是查看 Symbian 可执行程序的真正入口点,这个很快就找到了,是一个名叫 _E32Startup 的函数。立刻照猫画虎仿效当前自己在 Windows 下写 WinMainCRTStartup 的做法,写了一个同名函数,把实现留空,试图替换掉编译器默认提供的入口。这个小工作的进展就不那么顺利了,最开头写的是 void _E32Startup(),结果编译和链接很顺利,但查

2010-07-25 12:59:00 1482

原创 Symbian 上的资源文件问题

一、开始不得不说,老汉是个不太安分的人,经常会做一些系统/平台不太推荐的事情。前一段时间在测试一个不使用 Symbian SDK 推荐的框架的最简化的 GUI 程序。在 EXE 里创建一个 RWindow 来显示内容并接收事件,我曾经在很久之前就写过,这次的需求略有不同,要能够在其中正常使用 CCoeControl 派生出来的控件(网上有一篇这方面的资料传播最为广泛:http://www.pus...

2010-07-23 17:08:00 953 2

原创 S60 平台 lib 查看

在 S60 上如果用 RLibrary 动态加载其他库,那么在 Lookup 函数时就会遇到真正的痛苦,原因很简单,开发人员的手里通常只持有类和函数的名字,而 Lookup 却要求你提供一个函数序号(ordinal)。我们的程序在链接时也会面临这个转换过程,不过那时费力气的是那个叫做链接器的憨小子,我们只要在一旁看着就好。现在要把这部分工作手工做一遍,那就得找到函数名字和导出序号的对应表格。其实这个表格就深藏在 DLL 所对应的 lib 文件里,我们只需要一个 lib 文件的查看器就好。可惜

2010-07-19 18:02:00 1005

原创 Symbian 的缺陷(四)

篇首注:此文乃约一年前写就,其中可能有不正确的认识。现在借 CSDN 处新瓶装旧酒,供还在学习和使用 Symbian 的人员参考。上一次的缺陷没有总结,现在补上:Symbian 中内核对象的等待机制缺少一个统一的模型。这次要说的是过度设计上的一个例子。由于各种各样的目的,或者用户需求,应用程序在开机的时候能够自动启动是对操作系统的一个普遍要求。Windows 的全系列系统都实现了这个功能,而且具有...

2010-07-16 21:32:00 778 1

原创 Symbian 的缺陷(三)

篇首注:此文乃约一年前写就,其中可能有不正确的认识。现在借 CSDN 处新瓶装旧酒,供还在学习和使用 Symbian 的人员参考。今天想写一个 Symbian 上的类似于 OutputDebugString 那样的函数,可以在另外的进程中接收其输出。像这样的有可能在多线程中使用的函数,毫无悬念地需要迫使你去和系统提供的同步对象打交道。对于进程间的通知,我一直在感觉上倾向于使用 RProperty,...

2010-07-16 21:31:00 721

原创 Symbian 的缺陷(二)

篇首注:此文乃一年多前写就,其中可能有不正确的认识。现在借 CSDN 处新瓶装旧酒,供还在学习和使用 Symbian 的人员参考。4、无处不在的白痴 UID3如果你在 EKA2 下开发,那你就会发现有无数多的地方会牵涉到这个该死的 UID3:可执行文件名中有、资源文件名中有、注册资源文件名中有、资源文件资源 ID 所在的头文件(.rsg)中有、帮助文件条目 ID 所在的头文件中有(.hrh)……。...

2010-07-16 21:27:00 843

原创 Symbian 的缺陷(一)

篇首注:此文乃一年多前写就,其中可能有不正确的认识。现在借 CSDN 处新瓶装旧酒,供还在学习和使用 Symbian 的人员参考。 今天心情好,所以再来批评一下 Symbian。其实这些问题可能 Nokia 有更大的责任,不过既然 Symbian 是基础结构么,说它也不为过。1、纵观所有版本的 SDK,没有一个头文件里有可以标识 SDK 版本(或者操作系统版本,或者 UI 平台版本)的宏定义。这种...

2010-07-14 21:08:00 1238 1

原创 《Symbian 因何没落》评论区诟詈公案后记

最近写了一篇博文,名字叫《Symbian 因何没落》。原本是写在我常驻的博客空间里的,写就之后觉得 CSDN 应该更适合做这种技术观点上的探讨,所以就也在这里同步发布了一下。发布次日,被推荐到首页,大概是再次日,被推荐为头条。从推荐到首页开始,点击量大幅上升;后来推荐取消,点击也应声回落,从七月五日到今天,整整一周,潮涨潮落一个周期后,尘埃基本落定。其间随点击量而来的,则是留言评论的大增,无理谩骂之人前赴后继。CSDN 上因小事相争,相互攻讦,屡见不鲜,数年前已然,并非初现。可是我在博文发布后的次晨一看

2010-07-12 21:48:00 1978 5

原创 Symbian 因何没落

在回家的路上,和同事开玩笑说,要是 Nokia 或者 Symbian 请我去做 Symbian OS 的技术总监,我会告诉他们如何把 Symbian 引导到正确的方向。当然,这仅仅是笑谈,但是似乎不妨碍我们正确地思考这一问题。在 2006 年,我开始做真正智能移动平台的安全软件(在此之前,曾经跟踪过 Palm 上的安全动态,也有原型程序)。当时的平台还是以 Symbian(包括 S60 和 UIQ...

2010-07-05 22:12:00 26770 416

原创 Visual C++ 的 fatal error C1001

如果你是一位老资格的 Visual C++ 用户,那一定会对 Visual C++ 的 fatal error C1001 不会陌生。如果你在用 VC6 编一个规模较大的工程,如果你在用 VC6 编译一个用到了模板的工程,那恭喜你,这个错误会时不时冒地出来和你打招呼,搞得你手足无措。详细的出错信息如下:  fatal error C1001: INTERNAL COMPILER ERR

2008-06-30 15:14:00 21560 7

空空如也

空空如也

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

TA关注的人

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