自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 智能指针 std::auto_ptr 和 shared_ptr

转载:http://blog.sina.com.cn/s/blog_508938e10100f12x.htmlauto_ptr 类可以用于管理由 new 分配的单个对象,但是无法管理动态分配的数组(我们通常不会使用数组,而是使用 vector 代替数组)。auto_ptr 在拷贝和赋值的时候有不寻常的行为,因此 auto_ptrs 不能被保存在 stl 的容器中。当 auto_ptr 离开

2011-12-01 16:03:39 916

转载 剖析C++标准库智能指针(std::auto_ptr)

1.Do you Smart Pointer?      Smart Pointer,中文名:智能指针, 舶来品?      不可否认,资源泄露(resource leak)曾经是C++程序的一大噩梦.垃圾回收      机制(Garbage Collection)一时颇受注目.然而垃圾自动回收机制并不能      满足内存管理的即时性和可视性,往往使高傲的程序设计者感到不自在

2011-12-01 15:56:23 749

转载 系统变量

系统变量  由操作系统定义的数据存储位置,无论谁登录该计算机,该位置都相同。(Administrators 组的用户可以添加新的变量或更改这些值。编辑本段变量设置实例  格式:变量名=实际含义  ---------------------------------------------------------------  %homedriv

2011-11-10 11:59:16 1136

转载 从三层架构到MVC,MVP

本来是不想跳出来充大头蒜的,但最近发现园子里关于MVC的文章和讨论之风越刮越烈,其中有些朋友的观点并不是我所欣赏和推荐的,同时最近也在忙着给公司里的同事做MVC方面的“扫盲工作”。所以就搜集了一些大家接触MVC的过程中经常出现的问题做了一下解释说明,希望能与大家多多交流,呵呵。       当然这种架构模式本身的一些问题也会在接下来的内容就加以介绍,另外就是如果大家有什么不同观点的话,

2011-11-09 22:37:20 762

转载 MVC和MVP

MVC和MVP到底有什么区别呢?从这幅图可以看到,我们可以看到在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,及View。 所以,在MVC模型里,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务

2011-11-09 22:23:34 669

转载 深入分析 Linux 内核链表

<br /> <br /><br />链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。<br />通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个节点之间的联系形式,链表又可以分为单链表、

2011-05-17 17:11:00 608

转载 iOS开发技术概要

<br />http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iOs_TechOverview/Introduction/Introduction.html<br /> <br />介绍<br />iOS 操作系统是 iPhone、 iPod touch 以及 iPad 设备的核心。<br />构建 iOS 平台的知识与 Mac OS X 系统同出一辙,iOS 平台的许多开发工具和开发技术也源自

2011-05-16 17:31:00 1512

转载 理解 Xcode 工程

<br /> 介绍<br />http://www.apple.com.cn/developer/mac/library/documentation/DeveloperTools/Conceptual/xcode/xcodeprojects.html<br /> <br />Xcode是一个强大的专业开发工具,可以简单快速、而且以您熟悉的方式执行绝大多数常见的软件开发任务。相对于创建单一类型的应用程序所需要的能力而言,Xcode要强大得多,它的设计目的是使您可以创建任何想像得到的软件产品类型,从Cocoa及

2011-05-16 17:22:00 1434

转载 开发 Cocoa Objective-C 应用程序

通过教程中的以下的步骤,您将会对在 Cocoa 应用程序开发中最重要的两个应用程序更加熟悉:界面生成器和 Xcode 。您还将学习 Cocoa 应用程序开发中典型的工作步骤:设计应用程序(您的大脑)创建项目(Xcode)创建界面(界面生成器)定义类(界面生成器)实现类(Xcode)生成项目(Xcode)运行测试应用程序在学习的过程中,您还将学习如何使用通用的面向对象的设计模式设计应用程序。关于有关面向对象编程和 Objective-C 的背景知

2011-05-16 17:13:00 1127

转载 iOS技术文档

HTTP Live 媒体流概述HTTP Live 媒体流可以让您在原有的 Web 服务器上使用 HTTP 协议向 iPhone,iPad,iPod touch 和桌面计算机发送音频和视频。通用技术2010-11-15使用 ExternalAccessory 框架连接蓝牙设备在 iOS 3.0 及以上版本中,ExternalAccessory 框架允许应用程序和蓝牙设备通信。通用技术为 iPhone 和 iPad 创建和部署 HTTP Live 媒体流的最佳实践本技术说明讨论了为 iPhone

2011-05-16 16:33:00 2853

转载 MAC文件系统概述

<br />介绍<br />在任何一个操作系统当中,文件系统都是非常重要的部分,毕竟每个用户都需要在文件系统中保存自己的资料。在 Mac OS X 系统中,文件系统的组织结构扮演了非常重要的角色,它能够帮助用户找到想要的文件。这种组织结构同时也让应用和系统本身在为满足用户需要而查找文件资源的时候更加简单快捷。<br />Mac OS X 中的文件系统内核中有一套从 BSD 操作系统中继承而来的目录结构体系。虽然大部分目录都被 Finder 所隐藏,但是 BSD 世界中的很多元素都显露无遗。其中文件权限模型、

2011-05-16 16:30:00 8657 2

转载 C语言中实现模板函数小结

<br /><br />    如果要写个函数支持多种数据类型,首先想到的就是C++的模板了,但是有时候只能用C语言,比如在linux内核开发中,为了减少代码量,或者是某面试官的要求…<br />      考虑了一阵子后,就想到了qsort上.qsort的函数原型:<br />void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );<

2011-05-10 12:48:00 16044 1

转载 c语言用宏实现模板-以队列为例

1. 队列类型及操作的宏定义://队列类型表示:Queue_元素类型(如元素为整形的队列类型为:Queue_int)//_ET:元素类型#define Q_TYPE(_ET) Queue_##_ET//队列变量定义:每个队列对应一个数组,用于存放元素,数组名表示成:qBuf##queue//在定义队列变量时需指定队列长度:由len指定//ET: 元素类型//queue: 队列变量名//len: 队列长度#define Q_DEFINE(ET,queue,len) ET qBuf##queue[len]; i

2011-05-10 12:46:00 5518

转载 C语言实现stack模板

 看了bsd的源码,才知道C语言能通过宏实现C++模板的功能,真是太强大了!   我也学习着写了一个stack模板。有什么好的建议欢迎留言啊~~   "stack.h"   #ifndef MICRO_STACK_H   #define MICRO_STACK_H   #include   #include   #define STACK_NODE(name) name##__node   #define STACK_TEMPLATE(name,type) /   struct STACK_NODE(nam

2011-05-10 12:44:00 5507 1

转载 Linux下设置环境变量的文件

<br />第一篇<br /><br />bashrc与profile的区别<br />要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。<br />交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式

2011-04-12 14:56:00 992

转载 OSGi介绍(六)OSGi的service

<br />在给出采用service方式实现的“扶贫助手”之前,我们稍微回顾一下上一篇的成果。<br />在(五)中,我们看到程序被分成多个bundle后,程序的模块程度得到提高,而控制模块间的耦合度由Import-Package和Export-Package来控制,相对比较灵活。另一方面程序的更新和升级的粒度变小了。谁都知道只更新部分要比全部更新强,尤其当更新发生在一些需要建立昂贵的连接时,细粒度会节省不少花销。除了这些,我们看不到其他新鲜的东西。说白了,也就是挖空心思想一些design pattern来

2011-03-24 12:35:00 1098

转载 OSGi介绍(五)两个bundle

<br />(四)中提到的直接型改造法实际上和一个传统的java应用程序没有区别。因此客户的需求发生变化,通常是牵一发而动全身。<br />那么我们现在就看看如果在osgi framework中,用多个bundle来实现的效果吧。我的想法是用两个bundle来配合实现“扶贫助手”的功能。一个bundle专门负责录入和显示纪录,一个bundle专门负责纪录的数据结构和对数据的处理,用时下时髦的说法就是使用了mvc,只是我的m和c放到了一起。<br />先看看mc的bundle实现代码片断:<br />pack

2011-03-24 12:33:00 3328 2

转载 OSGi介绍(四)第一个bundle

<br />先给出“扶贫助手”的第一种改造,我称之为“直接型”,请看:<br /><br />package aa.bb.cc;<br />//需要import osgi的核心package<br />import org.osgi.framework.BundleActivator;<br />import org.osgi.framework.BundleContext;<br />//实现了BundleActivator<br />public class FamilyInfo implements 

2011-03-24 12:31:00 1162

转载 OSGi介绍(三)OSGi service platform的体系结构

先让我们来看看OSGi service platform的体系结构。另外要说明的是,我在后面的文章中,将采用framework来代替OSGi service platfrom,这样比较简便。下面这张图来自OSGi Alliance的主页(http://www.osgi.org/)层次很分明吧。放到我们假想的案例中,OS&Hardware可以对应为PDA的硬件和操作系统,您可以想象它是Intel xscacle + Microsoft window mobile,或者是Arm + embedded Linux

2011-03-24 12:30:00 1145

转载 osgi介绍(二)一个假想的实例

如何分析OSGi service platform的机制?给出几个硬生生的例子,然后分析一下代码?那还不如你自己看书看规范好了。因此,我觉得还是结合一个应用实例来分析会更容易理解,当然,是一个假想的应用实例。用怎样一个实例呢?嗯......几个月前,一个中学同学打电话给我说他们要在PDA上开发一个简单的应用程序来临时纪录工作的结果,并向我咨询,这种开发的难度和周期。这事启发我了,就以PDA的应用为背景,让我们来假想一个场景,从而来比较传统的应用模型与采用OSGi的应用模型有怎样的区别。我这样想象:小李是一个

2011-03-24 12:29:00 731

转载 osgi介绍(一)什么是osgi

<br /><br />过于的一年多,在和很多it届的同学及朋友见面时,他们总会问我最近在做什么。“OSGi!”,我不加思索的回答。到目前为止,对这个单词得到的反应都没有超出“这是什么?”,“我没有听说过”,“噢,能具体点吗?”等等。而我的回答更让他们糊涂,最后,大家干脆放弃这个话题,转到买房,运动等等更能体现聚会实质的问题上。不过最近,我一直在思考这个问题,下次再遇到这种情况时,该如何去表达才能让也是it届的哥们姐们能迅速的理解这个领域的范围呢?要知道,技术人员往往不善于表达,我们已经习惯了和业内人士用行

2011-03-24 12:28:00 802

转载 在Java中模拟多重继承--扩展多个类的技巧

<br />摘要:虽然Java不允许多重继承,但是有些情况却允许其使用。本文将阐述在一个Web应用中模拟多重继承的技术。<br /><br />在一般的开发中,Java的单继承限制一般不会引起什么问题。实际上,需要使用多重继承往往意味着糟糕的设计。然而还是存在一些情况,程序员们希望能够继承多个类。虽然Java不允许继承多个类,但是有些技巧能够模拟多重继承。<br /><br />我在Swing应用程序和Web应用中都使用过这个技巧。Swing应用打包并部署服务到应用服务器上。这种情况下,因为我希望在不同组件

2011-03-23 17:29:00 1113

转载 JAVA 的interface观念 与C++ 多重继承的比较

<br />依据DDJ的C/C++专栏作家Al Steven表示:他虽然不是很懂得Java﹐但是看到这些书中对于C++的物件导向概念的阐释﹐有些地方明显错误﹐真是令人担心。本文假设读者您已熟悉一些C/C++语言的概念﹐对Java也有初步的认识。而谈论Java的interface与C++的多重继承之主要异同处。 <br /><br />interface与多重继承的观念 <br />    不管是Java的interface或是C++的多重继承﹐在物件导向的理论里﹐都算是蛮新颖的概念。所以这里我们谈的﹐是以程

2011-03-23 17:28:00 764

转载 JAVA基础:完全掌握java中的"包"机制

<br /><br /> <br /> <br /> <br />"包"机制是java中特有的,也是java中最基础的知识。一些初学java的朋友,通常象学其它语言一样从教材上copy一些程序来运行,可是却常常遇到莫名其妙的错误提示。这些问题事实上都出在对"包"的原理不够清楚。本文将就此问题进行深入阐述。<br />一、为什么java中要有"包"的概念?<br />  以一言概之,java中"包"的引入的主要原因是java本身跨平台特性的需求。因为java中的所有的资源也是以文件方式组织,这其中主要包含大量

2011-03-23 12:23:00 567

转载 linux 下缓冲区溢出攻击原理及示例

<br />一、溢出目标<br />     无论是在windows下还是在linux下,溢出攻击基本上都是以控制计算机的执行路径为目标,而x86下执行哪条指令是由eip寄存器来控制的,所以如果能够修改eip寄存器的值,就可以修改计算机的执行路径。<br />    所以溢出的目标:控制eip寄存器。二、关于call/ret<br />      但是如何修改eip寄存器呢?在汇编指令中有一个和eip寄存器紧密相关的指令ret,ret就可以理解为pop eip。而ret指令在正常函数调用的时候都会执行的。<

2011-03-22 14:23:00 1447

转载 格式化字符串攻击原理及示例

<br /><br />一、类printf函数簇实现原理<br />类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型。<br />对于这种情况,可以使用省略号指定参数表。<br />带有省略号的函数定义中,参数表分为两部分,前半部分是确定个数、确定类型的参数,第二部分就是省略号,代表数目和类型都不确定的参数表,省略号参数表中参数的个数和参数的类型是事先的约定计算出来的,每个实参的地址(指针)是根据确定参数表中最后一个实参的地址算出来的。<br />这里涉及到函数调用时的栈操作

2011-03-22 14:20:00 18889 4

转载 iptables/netfilter命令、实现及利用

<br /><br />一、Netfilter和Iptables概述<br />       netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。<br />      虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两

2011-03-22 14:16:00 1206

转载 OSGi 体系结构及Bundle简介

<br /><br />1、OSGi 的体系架构是基于插件式的软件结构,包括一个 OSGi 框架和一系列插件,在 OSGi中,插件称为 Bundle,其中,OSGi 框架规范是 OSGi 规范的核心部分,它提供了一个通用的、安全可管理的 Java 框架,通过这个框架,可以支持 Bundle 服务应用的部署和扩展。Bundle 之间可以通过 Import Package 和 Require-Bundle 来共享 Java 类,在 OSGi 服务平台中,用户通过开发 Bundle 来提供需要的功能,这些 Bun

2011-03-14 14:43:00 978

转载 GCC 参数详解

<br />[介绍] <br />gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 <br /><br />1.预处理,生成.i的文件[预处理器cpp] <br />2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] <br />3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] <br />4.连接目标代码,生成可执行程序[链接器ld] <br />[参数详解] <br />-x language filename <

2011-03-11 10:20:00 440

转载 从Linux程序中执行shell(程序、脚本)并获得输出结果

<br />从Linux程序中执行shell(程序、脚本)并获得输出结果(转)Contents1. 前言2. 使用临时文件3. 使用匿名管道4. 使用popen5. 小结1. 前言<br />Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令

2011-03-09 19:01:00 850

转载 CentOS5共有フォルダの設定

<br />http://mpweb.sytes.net/complete/windows/share-centos.php<br />VirtualBoxでゲストOSのCentOS5を起動しメニューバー>>デバイス(D)>>共有フォルダ(S)を選択します。共有フォルダの設定画面が開いたら右上のフォルダに+マークの付いたアイコンをクリックします。共有フォルダの追加でフォルダパスと、フォルダ名を指定します。フォルダパスを指定するとフォルダ名が自動で挿入されますが、このときフォルダ名にブランクが入っている場合は

2011-03-09 10:41:00 753

转载 --vi 查找命令的使用

<br />按下 Enter 键后,vi 将搜索指定的 pattern,并将光标定位在 pattern 的第一个字符处。<br />例如,要向上搜索 place 一词,请键入:<br />/place Enter (Enter表示按下回车键)<br /><br />如果 vi 找到了 place,它将把光标定位在 p 处。要搜索 place 的其他匹配,请按 n 或 N:<br /><br />n,继续朝同一方向搜索 place。<br /><br />N,反方向进行搜索。<br />如果 vi 未找到指定

2011-03-01 17:53:00 702

转载 linux环境变量 shell变量 command not found解决方法

<br /><br />在Ubuntu中有如下几个文件可以设置环境变量<br />1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。<br />2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。<br />3、~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用

2011-03-01 16:57:00 16267

转载 unix下的jni使用指南(2)--如何使用GetFieldID和GetMethodID

<br /><br /> <br />    GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类中声明为 public的参数或方法。使用如下:<br /><br />jfieldID topicFieldId = env->GetFieldID(objectClass,"name", "Ljava/lang/String;");<br />jmethodID getcName=env->GetMethodID(objectClass,"getc

2011-02-28 17:12:00 4425 1

转载 JNI编程(二) —— 让C++和Java相互调用(1)

<br />http://chnic.javaeye.com/blog/236248<br /> <br /><br />自己在外面偷偷的算了下,又有将近两个月没更新过blog了。趁着今天有兴致,来更新JNI编程的第二篇文章。在第一篇里,大概介绍了JNI的特点、用途和优劣。并且做一个最简单的JNI的例子,不过说实话那个例子在实际的开发中没有太大的价值,实际开发中所需要的JNI程序要远远比那个复杂。所以这一篇就来介绍下如何通过JNI实现java和C++的相互通信,来满足实际开发的需要。<br /> <br /

2011-02-24 16:37:00 1525

转载 跟我一起写 Makefile

<br /><br />概述 <br />================<br />什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备

2011-02-23 14:12:00 704

转载 Vista/Win7下普通权限进程动态提升权限

本文出自 “碧海笙箫” 博客,请务必保留此出处http://pyhcx.blog.51cto.com/713166/197073一、前提在Vista/Win7下,加强了对安全的管理,对注册表修改,系统目录的文件操作,都需要管理员权限才能完成(当然虚拟存储机制,表面上也相当于能操作)。所以,对于程序中有相关操作的,这时候,就要求我们的程序必须拥有管理员权限。通过mainfest文件,我们可以让程序总是需要管理员权限执行,但是,这将导致程序每次运行时,都需要弹出UAC框老骚扰用户,另外,有时候我们的程序只是在某

2011-02-15 13:58:00 2026

转载 进程的结束和UAC的权限提升

<br /><br />终止进程是通过以下4种方式来实现的:<br />     *主线程入口点函数返回.(推荐)<br />     *进程中线程调用ExitProcess函数(避免)<br />     *另一个进程中线程调用TerminateProcess函数(避免)*<br />     进程,自然死亡(几乎不可能) <br />     <br />一、主线程的入口点函数返回 主程序入口点函数返回之后,这个应用程序的进程才终止. <br />  <br />       主线程的入口点函数返回,保

2011-02-15 13:52:00 1633

转载 模拟用户登录(张佩)

<br />我不知道这能不能算一个好点子,但我觉得这真的不错:模拟一个权力更大的用户进行某些无法完成的操作。举个例子来说:你在Administrator用户下,打开文件1.exe的安全设置页面,添加并设置Guest用户的权限为file control拒否,如下图所示: 这样,按照正常的办法,Guest用户将访问不到1.exe文件了。但是一点其他的办法都没有吗?也不是的,我告诉你一个:模拟高权用户!这是一个很别扭的例子,是我为了说明问题而“多此一举”。但有的时候,你可能要在用户 每次登进系统的时候,修改某

2011-02-15 13:47:00 740

原创 激活后台运行程序的窗口

<br />   最近工作的时候遇到激活后台程序窗口的问题,试了好多方法才成功,在这里留点记忆。<br />   我的程序一般不显示画面直接在后台运行,启动后直接进入系统托盘(Task Tray ),但在用户需要的时候需要显示运行状态画面。画面启动方法有两种:系统推盘启动和Explorer的右击菜单启动。系统托盘启动的时候没有问题,但是从Explorer启动的时候无法让窗口显示到最前端。尝试了SetForegroundWindow和BringWindowToTop等各种方法都没有成功,最后想到SetWind

2011-02-14 13:42:00 2805

空空如也

空空如也

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

TA关注的人

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