zoukankan      html  css  js  c++  java
  • cocos2d-x3.0.1,加载cocostudio ui编辑器导出的json文件出现"Buffer is too small" && 0解决方案

    刚到这个公司,开始进行cocos2d-x的真正项目开发,为了以后能够更好扩展,改动不大,决定使用3.X版本开发,而且使用ui编辑器。在导入的时候,今天遇到一个问题,Buffer is too small,搜了不少,但是都没有解决的方案,最后查到一个错误诱因,是因为ui中使用了label所致,于是我试了试,发现还真是label导致的问题,每次运行异常都发生在CCDevice.cpp的

    bool setFont(const char * pFontName = NULL, int nSize = 0)中的strcpy_s(tNewFont.lfFaceName, LF_FACESIZE, fontName.c_str());,因为fontName.c_str()过长导致越界,tNewFont.lfFaceName长度只有32字节,然后看了fontName为什么过长,而其他的都正常,发现TextRead.cpp文件中

    void TextReader::setPropsFromJsonDictionary(Widget *widget, const rapidjson::Value &options)。

    std::string fontName = DICTOOL->getStringValue_json(options, P_FontName, "微软雅黑");
    std::string fontFilePath = jsonPath.append(fontName);
    label->setFontName(fontFilePath );

    这几句代码将fontFilePath路径给增加了,实际上只用传递fontName就行,于是,改为

    std::string fontName = DICTOOL->getStringValue_json(options, P_FontName, "微软雅黑");
    // std::string fontFilePath = jsonPath.append(fontName);
    label->setFontName(fontName);

    编译之后正常。

  • 相关阅读:
    链接脚本语法
    STM32 硬件IIC接口总线
    C99一些特性
    oneid与用户标签之间的相互打通 实现用户标签
    图计算实现ID_Mapping、Oneid打通数据孤岛
    对于hive使用的一点记录
    centos7 hue安装
    Kafka监控安装
    hadoop2.6.0集群搭建
    centos6+cdh5.4.0 离线搭建cdh搭建
  • 原文地址:https://www.cnblogs.com/playerboy/p/3863171.html
Copyright © 2011-2022 走看看