08 2013 档案
摘要:什么是Detours简单地说,Detours是微软提供的一个开发库,使用它可以简单、高校、稳定地实现APIHOOK的功能。 Detours是一个可以在x86、x64和IA64平台上测试任意Win32函数的程序开发库。它可以通过为目标函数重写在内存中的代码而达到拦截Win32函数的目的。Detours还可以将任意的DLL或数据片段(称之为有效载荷)注入到任意Win32二进制文件中。Detours被广泛应用在微软内部和其他行业中。你可以从微软官方网站下载到Detours的express版本,目前最新版本是2.1,它包含有下列的崭新特性:* 完整的DetoursAPI文档*附加和拆卸处理模块* 支.
阅读全文
摘要:COM编程技术基础一、前言所谓COM(ComponetObjectModel,组件对象模型),是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。显然,在COM规范下将能够以高度灵活的编程手段来开发、维护应用程序。可以将一个单独的复杂程序划分为多个独立的模块进行开发,这里的每一个独立模块都是一个自给自足的组件,可以采取不同的开发语言去设计每一个组件。在运行时将这些组件通过接口组装起来以形成所需要的应用程序。构
阅读全文
摘要:本文为刚刚接触COM的程序员提供编程指南,解释COM服务器内幕以及如何用C++编写自己的接口。继上一篇COM编程入门之后,本文将讨论有关COM服务器的内容,解释编写自己的COM接口和COM服务器所需要的步骤和知识,以及详细讨论当COM库对COM服务器进行调用时,COM服务器运行的内部机制。如果你读过上一篇文章。应该很熟悉COM客户端是怎么会事了。本文将讨论COM的另一端——COM服务器。内容包括如何用C++编写一个简单的不涉及类库的COM服务器。深入到创建COM服务器的内部过程,毫无遮掩地研究那些库代码是充分理解COM服务器内部机制的最好方法。本文假设你精通C++并掌握了上一篇文章所讨论的概念
阅读全文
摘要:本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念。内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件。本文不包括如何编写自己的COM对象和接口。 COM即组件对象模型,是ComponentObjectModel取前三个字母的缩写,这三个字母在当今Windows的世界中随处可见。随时涌现出来的大把大把的新技术都以COM为基础。各种文档中也充斥着诸如COM对象、接口、服务器之类的术语。因此,对于一个程序员来说,不仅要掌握使用COM的方法,而且还要彻底熟悉COM的所有一切。 本文由浅入深描述COM的内在运行机制,教你如何使用第三方提供的COM对象..
阅读全文
摘要:一. 虚函数1.什么是虚函数:虚函数的定义是在基类中进行的,被 virtual 修饰的,当基类中的某个成员函数被声明为“虚函数”后,可以在一个或多个派生类中重新定义该函数,重新定义时,其函数原型(包括:返回类型,函数名,参数个数,参数类型以及参数顺序都必须与基类中的完全相同),一般虚函数的语法如下:virtual (形参表){ 函数体;}注意:虚函数的作用是在允许在派生类中对基类中的虚函数进行重新定义,显然只能用于类的继承层次中。使用虚函数的场景:(1) 成员函数是否作为一个基类,是否在派生类中需要改动(2) 对成员函数的调用,时候通过基类指针或引用注意:虚函数 与 函数重载的区别,列子:..
阅读全文
摘要:原文地址:http://www.cnblogs.com/smileEvday/archive/2012/03/27/2420362.html一、UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用: 1、作为容器,包含app所要显示的所有视图 2、传递触摸消息到程序中view和其他对象 3、与UIViewController协同工作,方便完成设备方向旋转的支持二、通常我们可以采取两种方法将view添加到UIWindow中: 1、addSubview 直接将v...
阅读全文
摘要:原文地址:http://www.cnblogs.com/smileEvday/archive/2012/05/10/2495153.htmlUINavigationController是iOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的APP中(如qq,系统相册等)都有用到。UINavigationController view层级当应用通过 UINavigationController 显示多个屏幕的信息时 ,相应的 UINavigationController 对象会以栈的形势保存所有的屏幕
阅读全文
摘要:每一个应用都有一个 NSUserDefaults 实例,向 NSUserDefaults 类发送 standardUserDefaults 消息可以得到该实例。NSUserDefaults 实例类似与 NSMutableDictionary,可以通过键存取或删除该对象。当应用第一次使用 NSUserDefaults 实例时,NSUserDefaults 实例会自动从文件读取数据;修改数据后,NSUserDefaults 实例会自动将数据写入文件。NSUserDefaults 的键必须是字符串类型,一个键对应一个偏好设置,偏好设置的值是对象,而且是可序列化的(serializable)对象;也可
阅读全文
摘要:在 iOS 中,有很多途径可以将对象写入磁盘,其中最重要的一种途径是“固化”(archiving):固化是将单个或多个对象从内存写入文件系统的过程。“解固”(unarchiving)是从文件读取对象并写回内存。固化可以通过 NSCoder 实例来完成, NSCoder 实例本身就是一个数据容器,可以存放对象和对象的数据,一旦 NSCoder 收集齐所需的数据,就可以将其写入指定的文件系统中的文件。不是所有对象都可以固化 - 只有遵守 NSCoding 协议的对象才可以。NSCoding 协议有两个方法(都是必须的方法):encodeWithCoder:(固化用);initWithCoder(解
阅读全文
摘要:部分转帖自:http://www.uml.org.cn/mobiledev/201209211.asp一、IOS沙盒机制概述:IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。1.1、每个应用程序都有自己的存储空间1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是:sand
阅读全文
摘要:转帖地址:http://www.zhihu.com/question/20016551我当时刚学iOS开发的时候一样的感觉 总想知道原理 内部怎么回事 感觉在像在雾里但是iOS开发就是这样 他是封闭的 本身就是在雾里...关于iOS开发的学习 打个比方就像把汽车分解最底层的原料有塑料 钢铁再用这些底层的东西造出来发动机 座椅最后再加上写螺丝 胶水等 把汽车就拼起来了iOS基本都是英文的资料 也由于封闭 文档写的相当好在遇到新框架的时候弄明白框架的功能去文档里搜搜 框架的 Programming Guide 很有用要弄明白框架类的继承结构写iOS的程序不一定都是用OBJC 很多框架是用C写的学习
阅读全文
摘要:这篇文章介绍了Objective-C比较底层的内容,主要讲解initialize和init方法的区别。从这篇文章中我们不光可以了解Objective-C在初始化时所做的事情,更可以学习到一些如何研究Objective-C语言内部到底做了什么的方法,这样你也可以自己对更深层次的内容进行探寻。原文地址:http://kupuk.com/2008/03/23/objective-c-initialize-method/作者:Paul RobinsonObjective-C很有趣的一个地方是,它非常非常像C。实际上,它就是C语言加上一些其他扩展和一个运行时间(runtime)。有了这个在每个Objec
阅读全文
摘要:[[类名 alloc] init]; 向类发送 alloc 方法,创建该类的实例并得到指向该实例的指针;之后向创建的该实例发送 init 消息,为实例变量初始化。init, initWithStyle, initWithNibName ...很多类有多个初始化方法,能以不同的形势初始化对象,每个初始化方法都以 init 开头(iOS 的命名约定)。所有的类,无论有多少个初始化方法,都必须选定一个作为“指定初始化方法” ,以 NSObject 为例,因为只有一个初始化方法 init ,所以 init 就是指定初始化方法也可以自定义类的初始化方法,例如 - (id)initWithObjectNa
阅读全文
摘要:一, 需要先从 Apple 公司得到一份开发者证书(developer certificate),才能将应用装入开发用的设备中进行测试。 已经注册的 iOS 开发者 ( $99)都可以得到 Apple 公司签发的开发者证书,通过该证书可以为代码“签名”,使之能在设备上运行;没有有效的证书,应用无法在设备上运行二,Apple 网站 (http://developer.apple.com/iphone)列由获得有效证书所需的所有说明和资源,可参考 Apple 的详尽步骤指南:Development Provisioning Assistant,按照次步骤流程执行,结束时,应该能将所需的证书加入钥.
阅读全文

浙公网安备 33010602011771号