ACG狂人

其实我更爱姐汁...

OGRE与MFC的文件系统冲突问题

这两个东西在一起问题真呀么多......前些日子才写的一个注意事项的随笔,这回又有问题需要记录,好吧,开新文写。
问题:由于项目的复杂度,问题的表现与原因其实相差十万八千里。
原因:MFC在打开和保持文件后(即打开CFileDialog对话框后),就会修改进程的当前目录,就是SetCurrentDirectoy(),导致OGRE里那些用相对路径做Location的资源目录下的文件全部无法读取(其实我觉得OGRE应该把这些相对目录在读取文件的时候换成绝对目录)。具体就是openResource()中调用stat()出错,文件系统中找不到指定文件。
解决方法:在合适的地方调用SetCurrentDirectoy()把进程当前目录设置回进程工作目录吧......

于是又是一下午+半个晚上的调试时间......

posted on 2010-12-29 20:49 酿妹汁 阅读(2157) 评论(5)  编辑 收藏 引用 所属分类: C++备忘

评论

# re: OGRE与MFC的文件系统冲突问题 2010-12-30 01:33 zjh

CFileDialog 有设置,不让他改变当前目录  回复  更多评论   

# re: OGRE与MFC的文件系统冲突问题 2010-12-30 09:20 xoyojank

都有这个问题, 不只是OGRE  回复  更多评论   

# re: OGRE与MFC的文件系统冲突问题 2010-12-31 10:41 陈梓瀚(vczh)

难道OGRE内部就用相对路径?我觉得作为一个引擎,资源文件在哪里,应该是用户全权控制的吧……  回复  更多评论   

# re: OGRE与MFC的文件系统冲突问题 2011-01-21 19:28 酿妹汁

@zjh
是这样么?受教了.  回复  更多评论   

# re: OGRE与MFC的文件系统冲突问题 2011-01-21 19:29 酿妹汁

@陈梓瀚(vczh)
用户的确可以全权控制,但是那样就失去了使用OGRE资源管理的意义。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理