﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-前进的路上-随笔分类-OGRE</title><link>http://www.cppblog.com/wc250en007/category/13987.html</link><description>前进的路上</description><language>zh-cn</language><lastBuildDate>Tue, 22 Jun 2010 17:36:04 GMT</lastBuildDate><pubDate>Tue, 22 Jun 2010 17:36:04 GMT</pubDate><ttl>60</ttl><item><title>音效引擎FMOD</title><link>http://www.cppblog.com/wc250en007/archive/2010/06/22/FMOD.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 22 Jun 2010 07:57:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2010/06/22/FMOD.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/118468.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2010/06/22/FMOD.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/118468.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/118468.html</trackback:ping><description><![CDATA[<p>一起一直没怎么关心声音这一块，今天看了一款游戏引擎HR3D后，引擎版本比较老，使用了播放声音什么的没有用DirectShow,DirectMusic,使用了FMOD，上网一搜，才知道自己早已经OUT了<br>参考人家O5年的文章:<br><a href="http://bbs.gameres.com/showthread.asp?threadid=37078">http://bbs.gameres.com/showthread.asp?threadid=37078</a><br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdafx.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">windows.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fmod.hpp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fmod_errors.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;_tmain(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;_TCHAR</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;argv[])<br><img id=Codehighlighter1_124_622_Open_Image onclick="this.style.display='none'; Codehighlighter1_124_622_Open_Text.style.display='none'; Codehighlighter1_124_622_Closed_Image.style.display='inline'; Codehighlighter1_124_622_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_124_622_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_124_622_Closed_Text.style.display='none'; Codehighlighter1_124_622_Open_Image.style.display='inline'; Codehighlighter1_124_622_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_124_622_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_124_622_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;FMOD::System</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;system&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;NULL;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;FMOD::Sound</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sound&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;NULL;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;FMOD::Channel</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;channel&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;NULL;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;FMOD::System_Create(&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">system&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">init(&nbsp;</span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">,&nbsp;FMOD_INIT_NORMAL,&nbsp;NULL&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建声音</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;system</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">createStream(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">TakeMeToYourHeart.mp3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;FMOD_HARDWARE,&nbsp;NULL,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">sound&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sound</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setMode(&nbsp;FMOD_LOOP_NORMAL&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">playSound(&nbsp;FMOD_CHANNEL_FREE,&nbsp;sound,&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">channel&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;channel</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setVolume(&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_545_608_Open_Image onclick="this.style.display='none'; Codehighlighter1_545_608_Open_Text.style.display='none'; Codehighlighter1_545_608_Closed_Image.style.display='inline'; Codehighlighter1_545_608_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_545_608_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_545_608_Closed_Text.style.display='none'; Codehighlighter1_545_608_Open_Image.style.display='inline'; Codehighlighter1_545_608_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;getchar()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;VK_RETURN&nbsp;)</span><span id=Codehighlighter1_545_608_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_545_608_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sound</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">release();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">close();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">release();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br><a title=实例下载 href="http://www.cppblog.com/Files/wc250en007/GameDev/FModeTest.rar">实例下载</a><br><br>使用的版本我不清楚是哪个，不过估计够老的，新的使用方法已经改变了，有空再研究下<br><br>新版本使用：<a href="http://www.cnblogs.com/flying_bat/archive/2008/10/19/1314437.html">http://www.cnblogs.com/flying_bat/archive/2008/10/19/1314437.html</a><br><br>参考网站：<a href="http://www.gamedev.net/reference/articles/article2098.asp">http://www.gamedev.net/reference/articles/article2098.asp</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.fmod.org/">http://www.fmod.org/</a>
<img src ="http://www.cppblog.com/wc250en007/aggbug/118468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2010-06-22 15:57 <a href="http://www.cppblog.com/wc250en007/archive/2010/06/22/FMOD.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CEGUI 0.7.1初编译</title><link>http://www.cppblog.com/wc250en007/archive/2010/06/13/OgreCompile.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Sun, 13 Jun 2010 04:24:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2010/06/13/OgreCompile.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/117781.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2010/06/13/OgreCompile.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/117781.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/117781.html</trackback:ping><description><![CDATA[<p>首先，在其官网下载windows版本的CEGUI-0.7.1.zip源码压缩包和vs编译用的依赖库CEGUI-DEPS-0.7.x-r1-vc71.zip（我的开发环境是vs2003，所以是vc71）。哎，干什么事情一定要细心，一不小心下了个CEGUI-DEPS-0.7.x-r1-vc9.zip ，结果编译的时候出现了莫名其妙的错误，更新成了VC71的就没问题了，可见欲速则不达的真理啊.....<br>下载网址：<a href="http://cegui.org.uk/api_reference/downloading.html">http://cegui.org.uk/api_reference/downloading.html</a><br></p>
然后，解压CEGUI-0.7.1.zip，生成CEGUI-0.7.1文件夹，将CEGUI-DEPS-0.7.x-r1-vc71.zip解压产生的dependencies放入CEGUI-0.7.1目录中，在进入CEGUI-0.7.1\projects\premake目录，执行build_vs2003.bat批处理脚本，生成CEGUI.sln工程文件，就可以编译了，一般情况下编译非常顺利。<br><br>我遇到了点问题:运行的时候提醒我logo.png没有加载上，莫非工作目录不对? 去see see，所有例子的工作目录都为空，而资源文件夹datafiles路径是CEGUI-0.7.1\datafiles，<br>跟踪程序发现CEGuiD3D9BaseApplication的构造函数中调用了DefaultResourceProvider加载资源<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CEGuiBaseApplication::initialiseResourceGroupDirectories()<br><img id=Codehighlighter1_64_1338_Open_Image onclick="this.style.display='none'; Codehighlighter1_64_1338_Open_Text.style.display='none'; Codehighlighter1_64_1338_Closed_Image.style.display='inline'; Codehighlighter1_64_1338_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_64_1338_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_64_1338_Closed_Text.style.display='none'; Codehighlighter1_64_1338_Open_Image.style.display='inline'; Codehighlighter1_64_1338_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_64_1338_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_64_1338_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;initialise&nbsp;the&nbsp;required&nbsp;dirs&nbsp;for&nbsp;the&nbsp;DefaultResourceProvider</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CEGUI::DefaultResourceProvider</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;rp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static_cast</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">CEGUI::DefaultResourceProvider</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CEGUI::System::getSingleton().getResourceProvider());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;dataPathPrefix&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getDataPathPrefix();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;resourcePath[PATH_MAX];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;for&nbsp;each&nbsp;resource&nbsp;type,&nbsp;set&nbsp;a&nbsp;resource&nbsp;group&nbsp;directory</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;sprintf(resourcePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s/%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dataPathPrefix,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">schemes/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setResourceGroupDirectory(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">schemes</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;resourcePath);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(resourcePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s/%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dataPathPrefix,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">imagesets/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setResourceGroupDirectory(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">imagesets</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;resourcePath);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(resourcePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s/%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dataPathPrefix,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fonts/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setResourceGroupDirectory(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fonts</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;resourcePath);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(resourcePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s/%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dataPathPrefix,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layouts/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setResourceGroupDirectory(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">layouts</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;resourcePath);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(resourcePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s/%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dataPathPrefix,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">looknfeel/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setResourceGroupDirectory(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">looknfeels</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;resourcePath);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(resourcePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s/%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dataPathPrefix,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">lua_scripts/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setResourceGroupDirectory(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">lua_scripts</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;resourcePath);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(resourcePath,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s/%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dataPathPrefix,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">xml_schemas/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;rp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setResourceGroupDirectory(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">schemas</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;resourcePath);&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
默认搜索的资源是../datafiles/schemes/ , ../datafiles/imagesets/, ../datafiles/fonts/, ........<br><br>以为着不用修改所有例子程序的工作目录，只需要将CEGUI-0.7.1\datafiles（ 我这解压后就是这个路径 ),拷贝到CEGUI-0.7.1\projects\premake\Samples下就OK<br><br>但是执行的时候却遇到了问题，我运行所有的CEGUI Sample全部内存错误，后来我跟踪发现Window::setParent(Window* parent)函数有问题，在他的函数体内只保留d_parent = parent;transferChildSurfaces(); 这两行内容就可以了，再编译就一切正常了。 PS： 注释的函数不知道有没有潜在的错误<br><br>OK 编译正常，可以运行<br><br>参照Demo写一个简单的例子：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_13_20_Open_Image onclick="this.style.display='none'; Codehighlighter1_13_20_Open_Text.style.display='none'; Codehighlighter1_13_20_Closed_Image.style.display='inline'; Codehighlighter1_13_20_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_13_20_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_13_20_Closed_Text.style.display='none'; Codehighlighter1_13_20_Open_Image.style.display='inline'; Codehighlighter1_13_20_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_13_20_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_13_20_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">argc</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_29_36_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_29_36_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">argv</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000">[])&nbsp;&nbsp;&nbsp;&nbsp;<br><img id=Codehighlighter1_42_77_Open_Image onclick="this.style.display='none'; Codehighlighter1_42_77_Open_Text.style.display='none'; Codehighlighter1_42_77_Closed_Image.style.display='inline'; Codehighlighter1_42_77_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_42_77_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_42_77_Closed_Text.style.display='none'; Codehighlighter1_42_77_Open_Image.style.display='inline'; Codehighlighter1_42_77_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_42_77_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_42_77_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TDemo&nbsp;demo;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;demo.run();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;TDemo::initialiseSample()<br><img id=Codehighlighter1_111_934_Open_Image onclick="this.style.display='none'; Codehighlighter1_111_934_Open_Text.style.display='none'; Codehighlighter1_111_934_Closed_Image.style.display='inline'; Codehighlighter1_111_934_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_111_934_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_111_934_Closed_Text.style.display='none'; Codehighlighter1_111_934_Open_Image.style.display='inline'; Codehighlighter1_111_934_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_111_934_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_111_934_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;CEGUI;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;WindowManager</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;winMgr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;WindowManager::getSingleton();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;SchemeManager::getSingleton().create(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WindowsLook.scheme</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Create&nbsp;cursor</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;System::getSingleton().setDefaultMouseCursor(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WindowsLook</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MouseArrow</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Create&nbsp;font</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;FontManager::getSingleton().create(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Girl.font</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Create&nbsp;root&nbsp;window</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;DefaultWindow</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;root&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(DefaultWindow</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)winMgr.createWindow(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WindowsLook/StaticImage</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">RootWindow</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Set&nbsp;GUI&nbsp;root&nbsp;window</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;System::getSingleton().setGUISheet(&nbsp;root&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Create&nbsp;child&nbsp;window</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Window</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;st&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;winMgr.createWindow(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WindowsLook/StaticText</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">StaticText</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">addChildWindow(&nbsp;st&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;st</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setPosition(&nbsp;UVector2(&nbsp;cegui_reldim(</span><span style="COLOR: #000000">0.45</span><span style="COLOR: #000000">),&nbsp;cegui_reldim(</span><span style="COLOR: #000000">0.23</span><span style="COLOR: #000000">)&nbsp;)&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;st</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setSize(&nbsp;UVector2(&nbsp;cegui_reldim(</span><span style="COLOR: #000000">0.15</span><span style="COLOR: #000000">),&nbsp;cegui_reldim(</span><span style="COLOR: #000000">0.05</span><span style="COLOR: #000000">)&nbsp;)&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;st</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">setText(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello&nbsp;world</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;TDemo::cleanupSample()<br><img id=Codehighlighter1_965_968_Open_Image onclick="this.style.display='none'; Codehighlighter1_965_968_Open_Text.style.display='none'; Codehighlighter1_965_968_Closed_Image.style.display='inline'; Codehighlighter1_965_968_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_965_968_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_965_968_Closed_Text.style.display='none'; Codehighlighter1_965_968_Open_Image.style.display='inline'; Codehighlighter1_965_968_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_965_968_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_965_968_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>go go go,虽然起步比较晚，但总比没有好，加油
<img src ="http://www.cppblog.com/wc250en007/aggbug/117781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2010-06-13 12:24 <a href="http://www.cppblog.com/wc250en007/archive/2010/06/13/OgreCompile.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OGRE1.7编译</title><link>http://www.cppblog.com/wc250en007/archive/2010/06/08/OgreDev.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 08 Jun 2010 02:12:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2010/06/08/OgreDev.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/117356.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2010/06/08/OgreDev.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/117356.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/117356.html</trackback:ping><description><![CDATA[转自原文<a href="http://www.cnblogs.com/lookof/archive/2010/03/06/1679633.html">http://www.cnblogs.com/lookof/archive/2010/03/06/1679633.html</a>&nbsp;这个问题我也遇到过，确定DX版本和VC版本对应就OK<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; Ogre3D官方于上个月末放出了1.7的稳定版本。据称该版本与旧版1.6x比起来，改动幅度较大。因此作为一名Ogre使用用户，&#8220;与时俱进&#8221;既是我的责任，又是变被动为主动的上乘战略。于是，学习新的Ogre系统成为我计划中的一部分。<br><br>&nbsp;&nbsp;&nbsp; 与以往不同，新Ogre的编译策略完全采用了CMake安装方式。为此，你首先要下载CMake工具才能安装Ogre。不过，官方在wiki中对如何安装新Ogre进行了详尽的说明，包括在哪里下载CMake以及如何使用它，都有step-by-step的指导。因此只要按照说明来，你&#8220;应该&#8221;可以顺利地看到通过CMake释放出的Ogre.sln。<br><br>&nbsp;&nbsp;&nbsp; 之所以说&#8220;应该&#8221;，是因为种种原因，还是有相当大的几率会遇到&#8220;挫折&#8221;。遇挫的可能性取决于与新Ogre有关联的周边配置。拿本人案例来说，就是要看你的DX SDK版本以及VC版本是否一致了。<br><br>&nbsp;&nbsp;&nbsp; 具体我的悲惨编译经历如下：<br><br>&nbsp;&nbsp;&nbsp; . 在公司机子上下载Ogre1.7并按指导进行安装，选择VC2003编译器编译，一切顺利，没有见到任何阻碍。很快就看到了Ogre.sln；编译Ogre.sln，全部顺利生成成功。心想新Ogre的用户体验不错嘛，没想到这么顺。注意，此机子的DX9 SDK版本是2009（March）的。<br><br>&nbsp;&nbsp;&nbsp; . 回家后重新下载Ogre1.7并安装，打算给本本也升级至新版。本本的DX9 SDK版本还停留在05年的古董级。就这样，开始，同样的步骤（依然选择了VC2003编译器）——然后，所以但是卡壳了。CMake在处理RenderSystem_Direct3D9时出现问题，具体出错信息想不起来了，抱歉。但稍稍分析一下即知，是找不到DxErr.h这个文件。经过google知道这是一个DX9 SDK新版本里的文件。于是，卸载旧的版本，选择最新的DX9 SDK （2010 February版本，新鲜出炉的呀）安装。<br><br>&nbsp;&nbsp;&nbsp; . 接着重新一开始的步骤——然后，终于见到Ogre.sln了，很好很强大。然后继续Ogre.sln的编译。经过近一个小时的编译——全部生成——除了一个RenderSystem_Direct3D9的工程！我艹，又是它。分析得知，DxErr.h虽然有，但它里面用到的__in却是一个无法识别的符号。继续google，得知__in是存在于VC2005中的一个系统变量。换句话说，如果要使用DX9 SDK(2010 Feb)版，就要用VC2005来编译工程了。<br><br>&nbsp;&nbsp;&nbsp; . 重新卸载了DX9 SDK(2010 Feb)版，下载了DX9 SDK(2009&nbsp; March)版来装。然后，再次开始编译旅程——终于全部搞定！<br><br>&nbsp;&nbsp;&nbsp; 从这里可以看到这个编译过程实际上对 Ogre &#8211; DX9 &#8211; VC 这条链上的版本有相对严格的要求。Ogre &#8211; DX9的环节可能会出错，同样DX9 - VC的环节也可能会出错。<br><br>&nbsp;&nbsp;&nbsp; Done~<br><br><br>ps:&nbsp; 顺便一提，在参观Ogre1.7的地形Sample时，点击Start后会发现程序陷入&#8220;死掉&#8221;状态，突然就那么不反应了。开始我以为又是什么bug所致，追踪源码后发现，原来是初次运行时Ogre要计算一张1024*1024的光照贴图（见OgreTeerain.CalcLightmap.for.for），此时用时较长，并没有真正死掉，只要耐心等一段时间，就会顺利打开这个Smaple，而且这张lightmap是生成一次，终生受用的。以后只要还是相同的地形，再次打开时直接载入，不必再等那么长的时间了。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另外，发现Ogre还没有提供对1.7系统的学习指导wiki，我想只有靠自己去摸索了。最好的方法应该就是认真参观各Sample大神了吧。
<img src ="http://www.cppblog.com/wc250en007/aggbug/117356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2010-06-08 10:12 <a href="http://www.cppblog.com/wc250en007/archive/2010/06/08/OgreDev.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>