zoukankan      html  css  js  c++  java
  • Cocos2dx 3.1.1 将一个2.X的项目改成3.1版本

    最近在论坛上下载到了一个Cocos2dx的单机跑酷例子,

    也不知道是2.x版的,

    花了一天时间试着把他改成3.1.1的试试,

    现在已经可以顺利编译的,

    但是还是有Heap Free的问题,调试了好几天,真心累了。

    代码地址如下:

    https://github.com/AdoBeatTheWorld/waytomobile/tree/master/projects/RunPiggy

    问题列表如下:

    1 error C2064: 项不会计算为接受 2 个参数的函数

    这个是一个回调函数的问题,

    #define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)
    #define CC_CALLBACK_1(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, ##__VA_ARGS__)
    #define CC_CALLBACK_2(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, ##__VA_ARGS__)
    #define CC_CALLBACK_3(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, ##__VA_ARGS__)

    CC_CALLBACK_{num}的意思是函数接收num数量的参数,__selerector__是回调函数的引用,__target__是引用此函数的对象

    例如

    CC_CALLBACK_1(GameMenu::menuAboutCallback,this)

    这个this一定要是GameMenu的实例,

    void GameMenu::menuAboutCallback(Ref* pSender)

    GameMenu::menuAboutCallback一定要接收一个参数。

    2 删除掉"HelloWorldScene.cpp"之后编译找不到的问题。

    下载下来的项目没有HelloWorldScene.cpp,所以我把项目模版生成的此文件也删掉了, 以免影响项目尺寸。

    但是编译的时候报了以上的错误,于是猜想是项目设置的问题。

    在项目.vcxprojItemGroup节点中找到HelloWorldScene.cppHelloWorldScene.h删除掉就可以了。

    3 CC_USE_MEM_LEAK_DETECTION 

    项目遇到了内存泄漏,各种debug,也无济于事,突然间在CCRef.h中看到这么个定义,就觉得跟内存泄漏的调试有莫大的关系,默认值为0,OK,改为1.

    满以为设置了这个之后会对heap free问题有所进展,谁知道,还是无济于事,也许是我不大习惯vs的调试吧,看到搞C++服务端的朋友各种调试方式,真心羡慕啊。

  • 相关阅读:
    Pytest 系列(28)- 参数化 parametrize + @allure.title() 动态生成标题
    Pytest 系列(27)- allure 命令行参数
    Pytest 系列(26)- 清空 allure 历史报告记录
    Pytest 系列(25)- 标记用例级别 @allure.
    Pytest 系列(24)- allure 环境准备
    基于Python的三种Bandit算法的实现
    博客迁移
    团体程序设计天梯赛2020游记
    P1825 [USACO11OPEN]Corn Maze S
    # JavaScript中的对象转数组Array.prototype.slice.call()方法详解
  • 原文地址:https://www.cnblogs.com/adoontheway/p/3873669.html
Copyright © 2011-2022 走看看