码迷,mamicode.com
首页 > Web开发 > 详细

cocos2d-x3.0.1,加载cocostudio ui编辑器导出的json文件出现"Buffer is too small" && 0解决方案

时间:2014-07-23 16:13:21      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:使用   os   文件   io   re   问题   

刚到这个公司,开始进行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);

编译之后正常。

cocos2d-x3.0.1,加载cocostudio ui编辑器导出的json文件出现"Buffer is too small" && 0解决方案,布布扣,bubuko.com

cocos2d-x3.0.1,加载cocostudio ui编辑器导出的json文件出现"Buffer is too small" && 0解决方案

标签:使用   os   文件   io   re   问题   

原文地址:http://www.cnblogs.com/playerboy/p/3863171.html

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