码迷,mamicode.com
首页 > 其他好文 > 详细

Cocos2d-x2.2.3 入口解析

时间:2014-12-10 23:59:30      阅读:459      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   使用   sp   on   

  在此我们使用vs2013打开工cocos2d-x工程程那么我们  我们使用win32的。拿到一个这种程序我们该怎么做呢? 第一步当然是找入口点了。因此 我们在工程目录下直接就可以找到这个win32的路口点。

 

 1 int APIENTRY _tWinMain(HINSTANCE hInstance,
 2                        HINSTANCE hPrevInstance,
 3                        LPTSTR    lpCmdLine,
 4                        int       nCmdShow)
 5 {
 6     UNREFERENCED_PARAMETER(hPrevInstance);
 7     UNREFERENCED_PARAMETER(lpCmdLine);
 8 
 9     // create the application instance
10     AppDelegate app;
11     CCEGLView* eglView = CCEGLView::sharedOpenGLView();
12     eglView->setViewName("MyGame");
13     eglView->setFrameSize(480, 320);
14     return CCApplication::sharedApplication()->run();
15 }

 

像这种庞大的工程 一般来说 机制都不会简单。简单的只有main 函数而已。

在此我们可以看到  AppDelegate app;在栈中定义了一个类  app 类。而

 CCEGLView* eglView = CCEGLView::sharedOpenGLView();
    eglView->setViewName("MyGame");
    eglView->setFrameSize(480, 320);

只是用来 设置 标题和 窗口大小的。

真正的主体出现在

CCApplication::sharedApplication()->run();

那我们就要对这一句进行分析了。

我们很容易可以看出  sharedApplication(); 是一个静态函数。

依据是啥?

CCApplication 它是一个类。

而->run();

这句可以看出什么呢?

从这里我有理由相信。

sharedApplication() 这个静态函数的返回值绝对是一个 类指针。

因此我们从这里可以使用vs2013的 F12键 来对程序进行跟踪。

 static CCApplication* sharedApplication();

在这里找到了 它的定义

CCApplication* CCApplication::sharedApplication()
{
    CC_ASSERT(sm_pSharedApplication);
    return sm_pSharedApplication;
}

CC_ASSERT 这个是一个宏,如果为空就直接退出。

那我们看看那个sm 到底是个什么玩意。

CCApplication * CCApplication::sm_pSharedApplication = 0;

其实它就是一个静态变量。

CCApplication::CCApplication()
: m_hInstance(NULL)
, m_hAccelTable(NULL)
{
    m_hInstance    = GetModuleHandle(NULL);
    m_nAnimationInterval.QuadPart = 0;
    CC_ASSERT(! sm_pSharedApplication);
    sm_pSharedApplication = this;
}

它在构造函数里 对它进行了实现。在构造的时候 使用this

也就是说  CCApplication::sharedApplication()  返回的其实就是指向app的指针。

run();

 

函数会继续向下调用。

会调用到applicationDidFinishLaunching() 这个纯虚基类的一个接口。  

 

Cocos2d-x2.2.3 入口解析

标签:style   blog   io   ar   color   os   使用   sp   on   

原文地址:http://www.cnblogs.com/ECN14/p/4156499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!