
C++
文章平均质量分 59
易旭昕
Roger in UC Mobile Ltd., focus on graphics stack (rendering architecture) research of WebKit based Browser in Android platform, include the graphics stack of WebKit itself along with the graphics stack of Android platform, and design how to combine t
展开
-
QT - QODBC数据库编程 --- 连接 MS Access (1)
QT为数据库编程提供了一个类似JDBC的统一操作模型,它的底层是具体数据库或数据库接口的插件,由它们负责完成真正的数据库操作。QT自带有QODBC Driver,在Windows平台上通过系统提供的ODBC Driver可以访问支持ODBC的数据库,如Ms Access、SQL Server等 (Windows XP 自带有Access和SQL Server的ODBC Driver)。QT数据库模原创 2006-12-01 17:13:00 · 14489 阅读 · 1 评论 -
LCMS色彩转换代码分析
Roger.Yi (roger2yi@gmail.com)文章主要对LCMS库中色彩转换部分的代码作分析,涉及到色彩管理基础和怎么使用ICC Profile进行色彩管理等知识。PDF下载: http://d.download.youkuaiyun.com/filedown/aHR0cDovL2RsMi5jc2RuLm5ldC9kb3duNC8yMDA3MTAxMC8xMDE2MjcxNjQxNC5wZGY=!原创 2007-10-10 17:05:00 · 1860 阅读 · 0 评论 -
LCMS介绍
Roger.Yi (roger2yi@gmail.com)LCMS库包含色彩管理所需要的所有功能,符合ICC Profile v4标准。 我们可以在我们自己的色彩管理软件中使用LCMS,实际上不少Linux系统都使用LCMS作为色彩管理的引擎,作用类似于Windows的ICM,Mac的Color Sync,和Adobe的ACE。PDF档下载:http://d.download.youkuaiyun.com/f原创 2007-10-10 16:32:00 · 2360 阅读 · 1 评论 -
错误处理基础指南
Roger.Yi (roger2yi@gmail.com)这篇文章是应经理的要求写的,旨在给部门的软件工程师提供一些关于错误处理方面的知识,帮助他们写出更高质量的代码。文章主要参考了C++编程规范(差不多算半抄了 -_-),还有其它一些C++和软件工程方面的书籍。我发布之前刚好看到刘未鹏老师写的同样关于错误处理的文章:http://blog.youkuaiyun.com/pongba/archive/2007原创 2007-10-10 17:19:00 · 1078 阅读 · 0 评论 -
C++中的作用域解析
C++中的作用域解析 Roger.Yi (roger2yi@gmail.com) C++到底有多少作用域,它们的作用是什么,又是如何相互影响的。 上图显示了C++中所有的作用域,也试图图形化它们之间粗略关系,这里当然无法表达的原创 2007-12-04 12:28:00 · 3254 阅读 · 0 评论 -
部分类 partial class
最近接触了一些C#,认识了C#中部分类的概念。 用partial修饰符修饰的类,被允许放在不同的源代码文件(.cs)里面,编译时,编译器会自动把分布在多个源代码文件中的类定义合并成一个完整的类,而从使用者的观点来看,完全跟非部分类一样。仅仅是提供给类的编写者一种更好的代码物理组织的方式。 部分类最常见的用途应该有两种: 1, 区分自动生成的代码和手写的代码,像UI设计器生成的UI布局原创 2008-06-16 16:16:00 · 1310 阅读 · 0 评论 -
事件,委托,处理器 Event, Delegate, Handler
在C#或者说.Net的事件处理机制中,有三个关键的概念 - 事件(Event),委托(Delegate)和处理器(Handler),另外在面向对象的背景中,还有另外两个概念 - 发送者(Sender),接收者(Receiver)。后面两者,Sender和Receiver比较容易理解,而前面3者则容易让人混淆,下面的内容试图对它们进行解释和澄清。事件(Event)通常是类实例的属性,它可以被原创 2008-06-18 09:56:00 · 2480 阅读 · 0 评论 -
Going Native? Or Going Script?
赖勇浩写了一篇文章,叫做”2012 不宜进入的三个技术点“,其中最后一个就是C++。而陈皓的”Why C++?王者归来“则表达的不同的意见,文中引述了C++界的大牛Herb Sutter的观点,认为随着计算能力再次集中在大公司构建的数据中心里面,而这些公司为了能够节约电力和机器的开销,它们有意愿,也有能力聘请高水平的工程师,使用C/C++这样的本地代码来编写它们服务端的软件堆栈。另外因为移动设备的原创 2012-02-04 12:29:22 · 1978 阅读 · 1 评论 -
阅读源代码的一些体会
最近一个月的时间,差不多都在看Android 4.0系统和它的WebKit实现的代码。面对庞大的代码库,复杂的系统,从一开始毫无头绪到后来慢慢厘清主要的流程和摸清系统的结构。体会到有一些方法对阅读源代码是非常有帮助的。需要可以编译,运行和调试如果只是光看代码,没办法编译,运行和调试,那对系统的理解总是只能停留在概念性的表面而无法深入。最好是能够下断点和单步跟踪,如果很难实现原创 2012-03-02 20:12:47 · 2204 阅读 · 0 评论 -
shared_ptr 两种常见的使用方式 (1)
Roger(roger2yi@gmail.com)1. 当作类对象的“共享句柄”来使用2. 在类内部提供资源管理服务 —— “为类提供资源的共享拷贝语义(或称为浅拷贝shadow copy),并在正确的时间回收资源” 上述的两种方式一种是在类外部使用,一种是在类内部使用,然而这两种方式并不是非此即彼的关系,很多情况下我们都可以选择任意一种,选择其中一种理由通常是遵循“更容易原创 2007-01-22 11:23:00 · 2856 阅读 · 0 评论 -
VC 2005 解决方案的目录结构设置和管理
VC 2005 解决方案的目录结构设置和管理 Roger (roger2yi@gmail.com) 一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。除此以外,根据项目的需求,还会使用一些第三方的库。 所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易原创 2007-01-13 13:13:00 · 17755 阅读 · 25 评论 -
非局部变量初始化议题讨论
非局部变量初始化议题讨论 Roger (roger2yi@gmail.com) 这篇文章集中讨论了非局部变量的一些初始化议题,包括非局部变量的定义;非局部变量初始化规则和现实中跨编译单元的初始化顺序依赖的几种解决方案。 文中的内容都源自一些C++书籍(BS的TCPL,Sutter的Exceptional系列),库的源代码和MSDN。 1.非局部变量的定义原创 2007-02-21 11:03:00 · 2239 阅读 · 0 评论 -
Java 为什么没有操作符重载
最近一直在看Herb 的 Exceptional C++ 系列书籍 ,Scott Meyer 在书的序中写到,Exceptional C++是一本常常会"make me surprise" 的书,的确,即使使用了C++ 已经很多年,但看这样的书仍然让自己觉得对C++的理解还十分浅薄。但是正如不断有人提出来的这个问题 - “是系统设计的复杂程度本身需要那么多的知识,经验和技巧还是C++ 自己本身太过原创 2006-12-07 10:40:00 · 7969 阅读 · 2 评论 -
QT - QODBC数据库编程 --- Access 中二进制大对象的存取 (2)
Access中并没有BLOB或者CLOB类型字段,要将文件的二进制数据存放在Access中,需要使用的是Access的OLE对象字段,让人觉得不爽的是Access软件没有MySQL Query Broswer那样直接查看二进制数据,导出文件,甚至作为图像文件直接打开的功能,除非是将二进制大对象包装成OLE对象 。(这是题外话,但是的确给工作带来不便)回到Qt,Qt中要进行二进制大对象的数据库操作原创 2006-12-11 09:44:00 · 5670 阅读 · 1 评论 -
auto_ptr与shared_ptr --- auto_ptr (1)
Roger (roger2yi@gmail.com) 这篇文章试图说明如何使用auto_ptr和shared_ptr,从而使得动态分配对象的使用和管理更安全,方便。除了一般的使用说明外,更主要是说明它们之间的异同 —— 满足需求的不同和开销上的差异。 文章的多数知识都来源于: 1. Exceptional C++(Herb)Item 37 auto_ptr2. Exce原创 2006-12-14 13:54:00 · 5711 阅读 · 2 评论 -
如何使用前置声明取代包括头文件
这篇文章很大程度是受到Exceptional C++ (Hurb99)书中第四章 Compiler Firewalls and the Pimpl Idiom (编译器防火墙和Pimpl惯用法) 的启发,这一章讲述了减少编译时依赖的意义和一些惯用法,其实最为常用又无任何副作用的是使用前置声明来取代包括头文件。Item 26 的Guideline - "Never #include a head原创 2006-12-12 12:09:00 · 11376 阅读 · 5 评论 -
auto_ptr与shared_ptr --- shared_ptr (2)
Roger (roger2yi@gmail.com)auto_ptr与shared_ptr --- auto_ptr (1)shared_ptrshared_ptr是Boost库所提供的一个智能指针的实现,正如其名字所蕴意的一样: An important goal of shared_ptr is to provide a standard shared-ownership po原创 2006-12-15 18:20:00 · 5495 阅读 · 1 评论 -
Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (2)
Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (1)Roger(roger2yi@gmail.com.cn)在说明顺序查找和Koenig查找如何共同作用的之前,先解释一下顺序查找,所谓顺序查找,就是从函数调用所处的域开始(如果函数调用处于一个成员函数中,初始域就是类域,如果处于自由函数中,初始域就是名字空间域或者全局域),依次由内原创 2006-12-19 17:29:00 · 2243 阅读 · 0 评论 -
Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (1)
Roger(roger2yi@gmail.com.cn) ADL,参数相关查找,也称作为Koenig查找(以Andrew Koenig的名字命名,有兴趣可以看Scott Meyer的文章The Most Important C++ People...Ever),是指在编译器对无限定域的函数调用进行名字查找时,所应用的一种查找规则。f(x, y, z); // unqualif原创 2006-12-19 10:34:00 · 3108 阅读 · 2 评论 -
Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (3)
Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (1)Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (2)Roger(roger2yi@gmail.com.cn)在前一篇文章的最后讲到Koenig查找会带来些副作用,其实之所以写这系列文章,起源是来自于我在看Boos原创 2006-12-20 11:21:00 · 3065 阅读 · 1 评论 -
Android 4.1 - 将系统浏览器编译成独立应用
为了方便在手机上(Galaxy Note with CM10),调试Android4.1 系统浏览器的代码,进行代码研究,我把系统浏览器编译成了一个独立的应用,不会跟ROM原来的系统浏览器产生冲突,可以很方便地在Eclipse自己建立的工程里面对Java部分的代码进行跟踪调试,理论上C++的部分也可以通过GDB进行调试。自己编译的库,显示Layer边界和信息首先系统原创 2012-10-13 09:47:52 · 9438 阅读 · 12 评论