Ogre做成控件我就不说了, 不复杂, 按控件的做就可以了, 原来做是为了给别的程序调用, 没有什么问题,
昨天需要让它在浏览器中调用, 麻烦就来了, 这里分享一下, 让新TX很快就避免走同样的老路.
在IE中调用主要就是路径的问题,
Ogre默认初始化时, 调用的Plugins.cfg, Ogre.cfg, Ogre.log, resources.cfg 的路径都是在程序所在的当前目录中调用的,
而一旦通过浏览器来调用, 拿IE来举例吧, 开始我以为它会首先查找IE浏览器程序所有的目录, 即C:/Program Files/Internet Explorer,
后来测试发现, 它并不是从这个目录中去查找这些配置文件的, 而是从当前目录下, 很奇怪, 我打印出当前目录, 竟然是: C:/Documents and Settings/Administrator/桌面 (当前目录可能由于各种程序的操作而改变)
所以, 它在桌面上创建了ogre.log, 而Plugins.cfg, ogre.cfg, resources.cfg都找不到, 所以挂掉了.
说到这里其实是费话, 只为了表明一个问题, 就是路径的问题, 解决方法很简单
在调用这四个文件时, 指定一个绝对路径, 如:
mRoot= new Root("C:/test/Plugins.cfg","C:/test/ogre.cfg","c:/test/ogre.log");
资源配置文件调用也一样, 使用绝对路径
当然, 我是先查询了一个控件所在的目录, 然后在控件所在的目录来查找, 上面的路径只是举个例子.
第一步解决了, 配置文件的路径都正确了, 程序可以继续下去了, 下面就是这些配置文件中, 指定的插件和资源的路径,
同样要修改, 改成绝对路径:
比如Plugins.cfg中,
PluginFolder=D:/AcitivexTest //改成实际的插件所在的目录
Resource.cfg中也一样, 指定一下绝对目录就可以了.
大功造成, 可以运行了.