Ogre读取中文路径名的文件失败的解决办法
因此想要一劳永逸的解决这个办法唯有去修改Ogre的源代码,以下为修改方法:
打开OgreFileSystem.cpp文件,找到FileSystemArchive::open方法,使用以下代码替换之:
{
String full_path = concatenate_path(mName, filename);
// Use filesystem to determine size
// (quicker than streaming to the end and back)
struct stat tagStat;
int ret = stat(full_path.c_str(), &tagStat);
assert(ret == 0 && "Problem getting file size" );
// Always open in binary mode
static std::vector<wchar_t> s_wchar_buf((size_t)128);
size_t lengthUnicode = MultiByteToWideChar(CP_ACP, 0, full_path.c_str(), full_path.size(), NULL, 0);
if (s_wchar_buf.size() < lengthUnicode + 1)
{
s_wchar_buf.resize(lengthUnicode * 2);
}
wchar_t* szUnicode = &s_wchar_buf[0];
MultiByteToWideChar(CP_ACP, 0, full_path.c_str(), full_path.size(), szUnicode, lengthUnicode);
szUnicode[lengthUnicode] = 0;
std::ifstream* origStream = new std::ifstream();
origStream->open(szUnicode, std::ios::in | std::ios::binary);
// Should check ensure open succeeded, in case fail for some reason.
if (origStream->fail())
{
delete origStream;
OGRE_EXCEPT(Exception::ERR_FILE_NOT_FOUND,
"Cannot open file: " + filename,
"FileSystemArchive::open");
}
/**//// Construct return stream, tell it to delete on destroy
FileStreamDataStream* stream = new FileStreamDataStream(filename,
origStream, tagStat.st_size, true);
return DataStreamPtr(stream);
}
Feedback
Ogre读取中文路径名的文件失败的解决办法相关推荐
- [UE4]导入 PSD 文件失败的解决办法:输出为 PNG,将 PNG 再保存为 PSD 导入
导入 PSD 文件失败的解决办法:输出为 PNG,将 PNG 再保存为 PSD 导入 图1 报错弹窗 LogFactory: FactoryCreateFile: Texture with Reimp ...
- unzip: Ubuntu系统下解压文件失败的解决办法
unzip: Ubuntu系统下解压文件失败的解决办法 双击打开.zip压缩文件,出现错误:装入归档文件时出现了一个错误 使用命令unzip无法解压成功, unzip opencv-3.2.0.zip ...
- 【以压缩文件方式打开文件失败】解决办法
用好压打开文件,发现:[以压缩文件方式打开文件失败], 瞬间崩溃,于是很努力的去找解决方法,最终解决方案如下: 使用winrar软件(如果没有winrar需要安装),使用工具修复压缩文件 拖拉修复的压 ...
- Ubuntu中用gedit保存文件失败的解决办法
1.Ubuntu中用gedit编辑文件后不能保存 这是因为没有相关文件的写权限,更改文件权限使用chmod命令,参见P289 2.Ubuntu中用gedit保存文件时,提示要生成备份文件,但又提示备份 ...
- php从数据库读取中文显示问号??的解决办法
出错原因: 1.数据库编码格式不对 2.PHP编码格式不对 3.浏览器编码格式不对 上面三者编码格式不统一,就会出现问题 数据库读取的时候在mysqli_connect()之后要设置连接字符编码mys ...
- windows server 2008 英文版安装中文vs2008 sp1补丁失败的解决办法
关于VS2008SP1无法安装相信你的VS2008是中文版,英文版不存在该问题. 安装错误是在安装.net3.5SP1的中文语言包的时候 办法一是改安装脚本ParameterInfo.xml绕过语言包 ...
- [虚拟机] VMware 15 + CentOS 7.7/8.0在主机和客户机之间拷贝文件失败的解决办法
CentOS 7.7是CentOS 7.x最后一个版本,本以为这个版本应该很完美,而且会解决7.6里对压缩包点右键没有"在当前目录解压"的选项的bug,实际试了一下比较失望,这个选 ...
- unzip: cannot find or open Ubuntu系统下解压文件失败的解决办法
问题: 执行解压命令:unzip -d /home/××/下载 gradle-3.5-all.zip时,目录完全正确但是却出现了如下错误: unzip: cannot find or ope ...
- 自动调用Wine Windows Program Loader执行EXE文件失败的解决办法
Wine安装完之后,双击exe文件的时候,都会自动调用Wine Windows Program Loader,而调用这个往往会出现错误: The file '/home/tools/SecureCRT ...
最新文章
- 行为模式之Chain of Responsibility模式
- i18n and L10n
- VMWare: eth0: error fetching interface information : device not found
- 【数据挖掘知识点五】层次聚类方法的理解
- 用计算机算出你喜欢吃你喜欢的人,Go for it七年级下学期1-12单元(期末复习)句子翻译专练...
- [剑指offer]面试题7:用两个栈实现队列
- 手动绘制DataTable
- print( )函数调用——pytnon小练
- c语言蠕虫病毒源码,蠕虫病毒源码!附带解毒源码!
- 从零开始之驱动发开、linux驱动(二十、linux设备驱动中的并发控制)
- CPU飙升到100%问题排查
- 1114 计算营业额
- 中国压电材料取得突破性进展,未来B超机可折叠弯曲
- 714. [C++]买卖股票的最佳时机含手续费
- HTTP请求响应的5种状态
- java存档_存档 Java 代码 - Java 入门教程
- 自动管道过滤器结构组成与应用领域介绍
- eclipse在资源管理器中打开文件
- VMware 虚拟机网络配置
- 人工智能机器人-智能时代的新纪元
热门文章
- python 解析xml格式_Python解析XML文件
- 用matlab相关分析,基于matlab的逐像元偏相关分析
- 神策数据汽车行业解决方案重磅上线,全面赋能车企数字化转型
- 喜报 | 安信证券签约神策数据!
- 奢侈品级别的广告位,到底要不要继续砸钱?
- com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决
- Winform开发框架之数据曲线报表
- Redis 文档阅读笔记 (一)
- mysql innodb学习笔记
- 华为路由器RIP协议通信的配置