游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5970|回复: 9

ogre1.7.1 与 cegui 0.7.1的兼容问题

[复制链接]

4

主题

10

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2010-5-7 17:16:00 | 显示全部楼层 |阅读模式
编译能够通过,链接也没问题,在运行时报错:
无法定位程序输入点:
?allocateBytes@nedAllocPolicy@ogre@sapaxipbdh0@z于动态链接库ogremain_d.dll上
问题发生在载入CEGUIOgreRenderer_d.dll时,不是这2个版本不兼容,难道需要自己编译cegui吗?或者谁能提供一个编译好的CEGUIOgreRenderer_d.dll给我,不胜感激,longxjgm@gmail.com

谢谢!

1

主题

32

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2010-5-8 09:38:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

cegui0.7.1自带渲染器。

4

主题

10

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2010-5-9 10:57:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

重新编译了cegui,问题解决

8

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2010-5-9 16:16:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

我用ogre1.7.1的时候也遇过这个问题,请问楼主怎样编译cegui的?

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-5-17 14:52:00 | 显示全部楼层

Re: ogre1.7.1 与 cegui 0.7.1的兼容问题

同问啊!!怎么解决的啊~楼主不要自己解决了就跑了啊~!!!!!!!!! [em6]

4

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2010-6-9 15:43:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

这个论坛就这样,要么没人回答问题,要么不了了知, 悲哀!!!!!!

我现在也遇到了这个问题,但没解决,先帖一个,大家参考下,我解决了会说一下的:

http://www.ogre3d.org/forums/viewtopic.php?f=2&t=56123

4

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2010-6-11 09:45:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

问题解决了,按cegui自己的说法,出现这样的问题是因为cegui绎出的SDK早于ogre发布版,可能出现冲突,细节我也没深挖,毕竟我只想用它,而且我是菜鸟。

我下了最新2010.6.7的CEGUI-snapshot-0.7.100607-vc8版本的(里面的samples不再直接针对ogre了,但对d3d和opengl渲染器是开放的),设置好路径,运行ogre测试程序,就ok了。

源代码关键部分(VS属性中应包含相应目录):
//.h:
#include <CEGUI.h>
#include <RendererModules/Ogre/CEGUIOgreRenderer.h>
#include <XMLParserModules/XercesParser/CEGUIXercesParser.h>

#ifdef _DEBUG
        #pragma comment(lib,"CEGUIBase_d.lib")
        #pragma comment(lib,"CEGUIOgreRenderer_d.lib")        //注意,用什么渲染器就应包含相库
        #pragma comment(lib,"CEGUIXercesParser_d.lib")
#else
        #pragma comment(lib,"CEGUIBase.lib")
        #pragma comment(lib,"CEGUIOgreRenderer.lib")
        #pragma comment(lib,"CEGUIXercesParser.lib")
#endif

//.cpp 这里直接copy网上的代码:
CEGUI::OgreRenderer &myRenderer = CEGUI::OgreRenderer::create();
        CEGUI::System::create( myRenderer );

        CEGUI:efaultResourceProvider* rp;

        rp = static_cast<CEGUI::DefaultResourceProvider*>
                (CEGUI::System::getSingleton().getResourceProvider());
        rp->setResourceGroupDirectory("schemes", "../datafiles/schemes/");
        rp->setResourceGroupDirectory("imagesets", "../datafiles/imagesets/");
        rp->setResourceGroupDirectory("fonts", "../datafiles/fonts/");
        rp->setResourceGroupDirectory("layouts", "../datafiles/layouts/");
        rp->setResourceGroupDirectory("looknfeels", "../datafiles/looknfeel/");
        rp->setResourceGroupDirectory("lua_scripts", "../datafiles/lua_scripts/");
        rp->setResourceGroupDirectory("schemas", "../datafiles/xml_schemas/");
        CEGUI::Imageset::setDefaultResourceGroup("imagesets");
        CEGUI::Font::setDefaultResourceGroup("fonts");
        CEGUI::Scheme::setDefaultResourceGroup("schemes");
        CEGUI::WidgetLookManager::setDefaultResourceGroup("looknfeels");
        CEGUI::WindowManager::setDefaultResourceGroup("layouts");
        CEGUI::ScriptModule::setDefaultResourceGroup("lua_scripts");
        CEGUI::XMLParser* parser = CEGUI::System::getSingleton().getXMLParser();

        if (parser->isPropertyPresent("SchemaDefaultResourceGroup"))
                parser->setProperty("SchemaDefaultResourceGroup", "schemas");
        CEGUI::SchemeManager::getSingleton().create( "TaharezLook.scheme" );
        CEGUI::System::getSingleton().setDefaultFont( "DejaVuSans-10" );
        CEGUI::System::getSingleton().setDefaultMouseCursor( "TaharezLook", "MouseArrow" );
        WindowManager& wmgr = WindowManager::getSingleton();
        Window* myRoot = wmgr.createWindow( "DefaultWindow", "root" );
        System::getSingleton().setGUISheet( myRoot );
        FrameWindow* fWnd = static_cast<FrameWindow*>(wmgr.createWindow( "TaharezLook/FrameWindow", "testWindow" ));
        myRoot->addChildWindow( fWnd );
        fWnd->setPosition( UVector2( UDim( 0.25f, 0 ), UDim( 0.25f, 0 ) ) );
        fWnd->setSize( UVector2( UDim( 0.5f, 0 ), UDim( 0.5f, 0 ) ) );
        fWnd->setText( "Hello World!" );

程序执行要成功,我是在自己工程的bin下放了datafiles,同时,在debug或release下放入了下面:
1、ogre运行支持库,直接从ogrehome下的bin文件夹debug或release中copy;
2、cegui运行支持库,直接从ceguihome下的bin文件夹中copy; 同时copy加入ceguihome\dependencies\bin下的文件。

4

主题

10

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2010-6-14 12:06:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

最近忙其它的了,原来有这么多的人不知道怎么解决啊。
我大致说下吧:
1。下载cegui0.7.1的源代码
2。然后设置好ogre的头文件和lib目录
3。编译cegui
4。拷贝编译好的cegui,主要是几个重要的dll,和lib文件,到ogre的lib和dll目录下,就完成了

关于cegui的使用:
因为cegui0.7.1跟以前的版本有所不同,所以,如何使用请看ogre官方wiki上的有关cegui的使用说明。

网上有很多关于cegui编译的博客,如果有什么问题也可以直接发邮件给我。

祝各位好运!

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2010-6-23 09:49:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

要自己重新编译CEGUI~

2

主题

13

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2010-6-24 17:40:00 | 显示全部楼层

Re:ogre1.7.1 与 cegui 0.7.1的兼容问题

晚上重新编译试下
我连接都没问题,运行时出现应用程序初始化错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-8 11:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表