cocos2dx windows安装有中文路径的解决办法

本文介绍了在cocos2dx开发中遇到的中文路径问题及其解决方案,包括用户默认设置(UserDefault)的初始化导致的乱码问题,以及如何修改`FileUtilsWin32::getWritablePath()`方法来兼容中文路径。通过修改源码和转换路径格式,成功解决了Windows环境下中文用户名和安装目录导致的游戏运行错误。
摘要由CSDN通过智能技术生成

在使用cocos2dx开发的游戏  在手机上面运行的游戏安装目录出现中文的可能性极低,但是有些公司也会将自己的游戏发布到PC上面  楼主的公司就有这个需求    这个时候用户在选择安装路径的时候可能会出现中文 (当然你也可以不让用户选择安装路径,将安装路径固定死  安装在c盘,不过用户体验不好),这个时候游戏很可能会出错,  例如资源找不到  。

这个时候可能会出现一个头疼的问题,就是你的开发环境的目录是不包含中文路径的,只有用户自定义安装路径的时候才会出现中文,这个时候你只需要将自己的工程路径中包含一个中文就行了,这样你就可以调试了,注意如果你的路径中包含中文  vs编译器可能会出错不让运行  具体出现的问题我不贴出来了 说一下我的解决办法吧  选择工程->属性->生成事件  将命令行全部删除,下面有一个后期生成事件中的命令行也全部删除(注意 这个时候你只是将你游戏工程里面的这个属性去掉了  但是依赖工程并没有,所以你在按照上面的步骤将依赖工程(libcocos2d工程或者你工程依赖的其他工程)里面的生成事件中的命令行中的内容全部删除)这样你就可以有一个调试环境了



首先来看一下UserDefault  这个类把   因为他会将你的xml文件保存到C:\Users\用户名\AppData\Local  下面    这个时候如果你的用户名是中文这个时候就会出错 

通过查看源码  发现在userDefault初始化的时候会有一个路径  来指定 文件    这个时候你要是用户名是中文的话就会发现这个_filePath会有乱码  


因为值是从FileUtils::getInstance()->getWritablePath()之中传出来的   所以我们只要进去修改这里面的方法就可以了


string FileUtilsWin32::getWritablePath() const
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
char dir[MAX_PATH];
GetWorkDirectory(dir);
return dir;
#endif


//CCLOG("dir------------%s", dir);
    if (_writablePa

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值