https://www.gravatar.com/avatar/7a0c24f697ea1587001c36d00039b60f?s=240&d=mp

[转]Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境

** 很久以前使用博客园博主子龙山人的一篇博文《Cocos2d-x win7+vs2010配置图文详解****(亲测)》成功配置过cocos2d-1.01-x-0.9.1版本,链接为:Cocos2d-x win7 + vs2010 配置图文详解(亲测)-来自子龙山人的博客 ,他写的博客图文并茂,很是详细。现在想要使用最新版本cocos2d-x-2.1.4,于是需要把之前安装到VS2010中cocos2d-1.01-x-0.9.1项目模板删除掉,不过很郁闷的是重装VS2010后原来的cocos2d-1.01-x-0.9.1项目模板还在。上网找到了方法,原文链接为:cocos2d-x删除vs2010项目模板 ,方法如下:**

一、cocos2d-x删除vs2010项目模板(这一步新使用cocos2d-x的不需要)

如果你切换cocos2d-x版本的话, 要将之前版本的vs模板删除掉,方法如下:

进入以下目录(根据自己的vs版本):

VS2008: C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects\ >

VC2008Express: C:\Program Files\Microsoft Visual Studio 9.0\VC\Express\VCProjects >

VS2010: C:\Program Files\Microsoft Visual Studio 10.0\VC\vcprojects\ >

VC2010Express: C:\Program Files\Microsoft Visual Studio 10.0\VC\Express\VCProjects. >

注:本人ide版本是vs2010,安装目录也是默认安装c盘, 直接复路径即可。 (1)删除文件夹 Cocos2d-x

(2)删除文件(以CCAppWiz 或者 CCXAppWiz前缀开头的文件),主要是两个.ico文件

** **

附官网解决方法:

cd wizard directory (Example as default install) >

VS2008: C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects\ >

[转]C/C++中取地址符&的语义

在C语言中,&符号大家一定很熟悉吧。

它除了可以作为按位运算“与”之外还有更常用的功能——取变量地址。

我们首先看下面一个简单的例子:

上面代码中,指针p指向变量a的地址。在C/C++中,每个变量都有其相应的地址,通过在变量标识符前加&符号即可获得变量的地址。

那么我们这么写可以吗?int *p = &0x01000;

这显然不行。因为对于一个数值常量,它是没有地址的。而变量之所以有地址就是因为要有一个存储单元对变量进行标识(当然,变量也可以直接映射到某个寄存器)。

我们再看下面的代码:

上面代码又是怎么回事呢?

先前已经调查过变量a的地址——0x0012ff60,那么这里的指针p实际上也是指向变量a的地址。

首先,将0x0012ff60作为int*,这时它与&a是等价的。

然后*(int*)0x0012ff60表示取变量a的内容。

最后,&(int)0x0012ff60表示再脱去*(int*)0x0012ff60的解引用,相当于又变为(int*)&a。

因此,这里的&与第一个例子中的&是不同的语义。这里的&不是取地址,因为一个*(int*)0x0012ff60不是变量,它是没有地址的。每一个变量标识符在编译期间,编译器会为它们创建一个符号表,其中存放着变量标识符相应的各种属性,如类型、地址标识等。地址标识在连接后即可确定逻辑地址值。简而言之,&作为取地址操作,当且仅当&后面跟着的是变量或函数标识符。所以这里的&表示脱去解引用。

由此我们可以得出:&作为取地址操作时,其行为结果是在编译时就被确定的;而*,解引用操作(或取内容)操作,其行为结果只能在运行时才可被确定。

再看下面的例子,加深印象:

不过,&符号不象解引用*能用多次,它只能放在变量标识符或一次解引用前。下面举一个例子

由于经过一次&来脱去解引用之后,当前表达式就不为左值。而&必须放在一个左值前,因为只有左值才能确保引用是有效的,呵呵。

在C++中,&还可以表示引用,这个就不多说了。

本文来自CSDN博客,出处:http://blog.csdn.net/zenny_chen/archive/2008/06/04/2512056.aspx

C++中const用法详解

之所以详细讨论C++中const的用法,主要是因为在使用const限定指针时存在一些需要注意的地方。以下将按三个方面讨论const的用法,分别为:

1、const的基本概念以及定义一般变量的用法;

2、使用const定义指针时需注意的问题:

_ a) const指针_

_ b) 指向const对象的指针_

const是C++中声明和定义变量时的一个限定关键字,用来指明所声明和定义的变量具有const属性,也就是被const修饰的变量是一个常量,常量的值必须在定义时初始化,并且在其生存期内不能改变其初始值。

2、使用const定义指针时需注意的问题

此时主要需要区分两种类型: **    a) const指针** **    b) 指向const对象的指针 **

这两种类型的区分是根据定义时const的位置决定的。首先,说明一下什么是const指针 和 指向const对象的指针:

a) const指针指的是此指针为const类型的,也就是说此指针需要在定义时初始化且指针的值在生存期内不能变(说白了就是在定义指针时就要说明这个指针是指向哪个对象的,而且在这个指针的生存期内不能将这个指针再指向其他对象);

b) 指向const对象的指针是指指针所指向的对象具有const的属性,也就是说指针所指向的那个对象必须在定义时初始化且在生存期内不能变更值。

注意出现需要区分上述情况是由于const属性和指针的特殊性引起的:因为指针涉及到两个对象,一个指针本身,一个是指针指向的对象,这两种说法区分了指针本身具有const属性和指针指向的对象具有const属性的情况。

具体来说,const指针的说法比较好理解,因为既然存在对const类型变量的需求,自然存在对const类型指针的需求,指针也是一种特殊的变量。但是为什么要定义指向const对象的指针呢,在这种情况下将指针指向的对象定义成const不就行了吗,其实是不行的,这需要从原理说起,假设定义了一个const型的变量,如 const int a;现在需要定义指向其的指针pa,假设无法在定义时说明pa指向的类型是否为const,那么可以定义int * pa = &a; 此时如果通过pa更改变量a的值,由于在执行时pa只是存储了对象a的地址,不知道pa指向的对象a不能更改,那么a的定义const int a;里的const限定符就因为指针而形同虚设了,所以编译器会检查这种非法的情况,那么如果真的需要使用一个指针指向const对象时,定义一个指向const对象的指针就派上用场了。

下面举例说明怎么定义这两种属性的指针:(注意这两种属性相互独立,可以只具有一个,也可以两个都具备)

//const指针的例子 int a; //定义变量a int * const pa = &a; //定义const类型的指针,此时指针pa只能在定义时初始化,在生存期内不能指向其他地址 //指向const类型的指针的例子 const int a;  //定义一个具有const属性的变量 const int * pa = &a;  //定义一个指向const对象的指针的pa,注意此条命令等同于int const * pa = &a; > //既是const指针又是指向const类型指针的例子 > const int a; > const int * const pa = &a; PS:如何记忆呢,关键是以*为分界符,其后的const修饰指针,其前的const修饰指针指向的内容。可以记忆为离谁近就是修饰谁。

[转]Android中黄色警告提示强迫症

写代码的时候,不希望整个工程中到处都是黄色的感叹号,尤其对于强迫症而言。那样的话,打开项目,会让人感觉整个项目不够清爽,干净。

所以写此贴,将平时碰到的警告全部总结集中起来。

1:Handler

// This Handler class should be static or leaks might occur: IncomingHandler
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {

    };
};

解决方法:

private Handler mHandler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
            return false;
        }
});

警告原因:静态弱应用可能出现内存泄露问题

2:SimpleDateFormat

// To get local formatting use getDateInstance(), getDateTimeInstance(), or
    // getTimeInstance(), or use new SimpleDateFormat(String template, Locale
    // locale) with for example Locale.US for ASCII dates.
    @SuppressLint("SimpleDateFormat")
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
            "yyyy-MM-ddHH:mm:ss");

解决方法:

[转]Android开发者必知的开发资源

随着Android平台市场份额的持续猛增  ,越来越多的开发者开始投入Android应用程序的开发大潮。如果您是一位2013年刚刚入行的Android开发新兵,恭喜你,因为这个平台已经在过去几年里变得愈发成熟了,绝对值得住你全情投入。目前来看,Android现成的开发资源早已经汗牛充栋,我们这篇帖子,就是要在浩如烟海的资源中挑出最重要的那些,呈现给你。

本帖对Android开发菜鸟和中级老兵同样适用,因为本帖重点列出了那些最常用的Android开发资源。http://www.ithome.me/wp-content/uploads/2013/07/index_landing_page-300x236.png

推荐书籍

你或许觉得,都2013年了,再去看个什么书来学习Android开发,这方法应该早就过时了。没错,或许你的想法是对的。但是我们还是推荐按照过时的办法来。理由的话,请参看: Programmers Don’t Read Books – But You Should  (作者为:Jeff Atwood)

我推荐下面两本书:

  • The Busy Coder’s Guide to Android Development 》(Mark Murphy 著)。这本书最大的特色就在于它的覆盖广度(此书有超过2000页的篇幅),而且更新频率很高(平均每2个月更新一次)。这本书对于快速进化的Andoird平台来说,应当是很具有榜样性质的。作者Mark Murphy本人还设立了常规答疑环节,这样本书的读者就能够向作者直接提问。本书的示例源代码全部都发布在 github 上面。所以综上所述,强烈推荐。
  • Smashing UI  》(Juhani Lehtimaki 著)。对于那些关注如何做出顶级UI设计的Android开发者来说,此书无可挑剔。

developer.android.com 官方开发者站点推荐资源

在动手编写第一个Android应用之前,用心读一读Android Design 章节。尤其是下面的这些文章: