﻿<?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++博客-OGRE3D游戏开发-文章分类-OGRE3D学习开发</title><link>http://www.cppblog.com/OGRE3D/category/13992.html</link><description>OGRE3D Game Development</description><language>zh-cn</language><lastBuildDate>Sat, 12 Jun 2010 18:37:40 GMT</lastBuildDate><pubDate>Sat, 12 Jun 2010 18:37:40 GMT</pubDate><ttl>60</ttl><item><title>自己写第一个“空白Demo程序”</title><link>http://www.cppblog.com/OGRE3D/articles/117597.html</link><dc:creator>OGRE3D游戏开发</dc:creator><author>OGRE3D游戏开发</author><pubDate>Fri, 11 Jun 2010 17:25:00 GMT</pubDate><guid>http://www.cppblog.com/OGRE3D/articles/117597.html</guid><wfw:comment>http://www.cppblog.com/OGRE3D/comments/117597.html</wfw:comment><comments>http://www.cppblog.com/OGRE3D/articles/117597.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/OGRE3D/comments/commentRss/117597.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/OGRE3D/services/trackbacks/117597.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;刚接触OGRE，不知如何入手。看文档？读教程？找例子？还是搜一搜别人写的心得？经过以上的努力之后，还是没有找到入门的感觉。这让我想到了经典的&#8220;Hello World！&#8221;，于是决定从第一个空白窗口开始，采用&#8220;兵来将挡&#8221;的战术。<br><br>打开VC++2008创建一个新的工程：<br>&nbsp;&nbsp;&nbsp;&nbsp;为了方便查看调试信息，我创建的是&#8220;<span style="COLOR: red">Visual C++</span> -&gt; <span style="COLOR: red">Win32</span> -&gt; <span style="COLOR: red">Win32 Console Application</span>&#8221;工程，工程路径为&#8220;<span style="COLOR: red">E:\ogre\OgreDemo</span>&#8221;。<br><img height=470 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/001.gif" width=683 border=0><br><br>完成工程的创建之后，<span style="COLOR: red">F7</span>进行编译。毫无疑问，编译成功&#8230;&#8230;<br><img height=470 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/002.gif" width=683 border=0><br><br>接下来，我要使用OGRE。OGRE的入口：<span style="COLOR: red">ExampleApplication app</span><br>编辑<strong>OgreDemo.cpp</strong>中的代码，如下： </span><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: #008000">//</span><span style="COLOR: #008000">&nbsp;OgreDemo.cpp&nbsp;:&nbsp;Defines&nbsp;the&nbsp;entry&nbsp;point&nbsp;for&nbsp;the&nbsp;console&nbsp;application.<br></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">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">"</span><span style="COLOR: #000000">ExampleApplication.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_165_214_Open_Image style="DISPLAY: inline" onclick="this.style.display='none'; Codehighlighter1_165_214_Open_Text.style.display='none'; Codehighlighter1_165_214_Closed_Image.style.display='inline'; Codehighlighter1_165_214_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_165_214_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_165_214_Closed_Text.style.display='none'; Codehighlighter1_165_214_Open_Image.style.display='inline'; Codehighlighter1_165_214_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_165_214_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_165_214_Open_Text style="DISPLAY: inline"><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;ExampleApplication&nbsp;app;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;app.go();<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></div>
<br><span style="FONT-SIZE: 10pt">编译后出现错误如下：<br><span style="COLOR: #ff6600">------ Build started: Project: OgreDemo, Configuration: Debug Win32 ------<br>Compiling...<br>OgreDemo.cpp<br>e:\ogre\ogredemo\ogredemo\ogredemo.cpp(5) : fatal error C1083: Cannot open include file: 'ExampleApplication.h': No such file or directory<br>Build log was saved at "file://e:\ogre\OgreDemo\OgreDemo\Debug\BuildLog.htm"<br>OgreDemo - 1 error(s), 0 warning(s)<br>========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========</span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;开始采用&#8220;兵来将挡&#8221;的策略：出现什么问题，那我就去解决什么问题。&#8220;<span style="COLOR: #ff6600">fatal error C1083: Cannot open include file</span>&#8221;：找不到包含文件&#8230;&#8230;首先确定文件&#8220;<span style="COLOR: #ff6600">ExampleApplication.h</span>&#8221;的路径，在SDK中：&#8220;E:\ogre\OgreSDK_vc9_v1-7-1\include\OGRE\ExampleApplication.h&#8221;。包含include、lib目录有多种方法，这里我使用设置环境变量的方法：打开&#8220;<span style="COLOR: #ff0000">我的电脑</span>&#8221;属性页，选择&#8220;<span style="COLOR: #ff0000">高级</span> -&gt; <span style="COLOR: #ff0000">环境变量</span>&#8221;，新建用户变量：<span style="COLOR: #0000ff">OGRE_SDK&nbsp;&nbsp;E:\ogre\OgreSDK_vc9_v1-7-1</span>。在这里环境变量设置为SDK根目录，是为了方便引用其他的目录文件。<br><img height=452 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/003.gif" width=384 border=0><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接下来，在工程中使用环境变量来包含include目录。打开工程属性页，在&#8220;<span style="COLOR: red">Configuration Properties</span> -&gt; <span style="COLOR: red">C/C++</span> -&gt; <span style="COLOR: red">General</span> -&gt; <span style="COLOR: red">Additional Include Directories</span>&#8221;栏目中填上&#8220;<span style="COLOR: #0000ff">$(OGRE_SDK)\include\OGRE</span>&#8221;，确认并应用该设置。<br><img height=208 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/004.gif" width=748 border=0><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编译后还是出现同样的错误，这里需注意的是：设置完环境变量之后，须关闭VC++2008后再重新打开工程项目，这样才能使环境变量在工程中起作用。编译后出现了不同的错误，如下：<br><span style="COLOR: #ff6600">------ Build started: Project: OgreDemo, Configuration: Debug Win32 ------<br>Compiling...<br>OgreDemo.cpp<br>e:\ogre\ogresdk_vc9_v1-7-1\include\ogre\threading\ogrethreadheadersboost.h(29) : fatal error C1083: Cannot open include file: 'boost/thread/tss.hpp': No such file or directory<br>Build log was saved at "file://e:\ogre\OgreDemo\OgreDemo\Debug\BuildLog.htm"<br>OgreDemo - 1 error(s), 0 warning(s)<br>========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========</span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用同样的方法包含目录路径(<span style="COLOR: #0000ff">$(OGRE_SDK)\boost_1_42</span>)，同样的还有(<span style="COLOR: #0000ff">$(OGRE_SDK)\include\OIS</span>)。这里可以将(<span style="COLOR: #0000ff">$(OGRE_SDK)\include\OGRE</span>)、(<span style="COLOR: #0000ff">$(OGRE_SDK)\include\OIS</span>)合为(<span style="COLOR: #0000ff">$(OGRE_SDK)\include</span>)，需要修改一下<strong>OgreDemo.cpp</strong>中的代码：#include "OGRE/ExampleApplication.h"。<br><br>编译后出现错误如下：<br><span style="COLOR: #ff6600">------ Build started: Project: OgreDemo, Configuration: Debug Win32 ------<br>Compiling...<br>OgreDemo.cpp<br>e:\ogre\ogredemo\ogredemo\ogredemo.cpp(9) : error C2259: 'ExampleApplication' : cannot instantiate abstract class due to following members: 'void ExampleApplication::createScene(void)' : is abstract e:\ogre\ogresdk_vc9_v1-7-1\include\ogre\exampleapplication.h(364) : see declaration of 'ExampleApplication::createScene'<br>Build log was saved at "file://e:\ogre\OgreDemo\OgreDemo\Debug\BuildLog.htm"<br>OgreDemo - 1 error(s), 5 warning(s)<br>========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========<br></span><br>&nbsp;&nbsp;&nbsp;&nbsp;关于这个错误在这里我就不详细解释(我也不是很清楚)，解决方法是定义一个<strong>ExampleApplication</strong>的派生类<strong>MyApp</strong>，添加<span style="COLOR: #ff9900">createScene</span>方法。下面给出该类的代码：<br><strong>MyApp.h</strong><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: #008000">//</span><span style="COLOR: #008000">&nbsp;MyApp.h</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">#pragma&nbsp;once<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>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">OGRE/ExampleApplication.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">class</span><span style="COLOR: #000000">&nbsp;MyApp:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;ExampleApplication<br><img id=Codehighlighter1_102_163_Open_Image onclick="this.style.display='none'; Codehighlighter1_102_163_Open_Text.style.display='none'; Codehighlighter1_102_163_Closed_Image.style.display='inline'; Codehighlighter1_102_163_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_102_163_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_102_163_Closed_Text.style.display='none'; Codehighlighter1_102_163_Open_Image.style.display='inline'; Codehighlighter1_102_163_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_102_163_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_102_163_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;MyApp();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">MyApp();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><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">void</span><span style="COLOR: #000000">&nbsp;createScene();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<br><br><strong>MyApp.cpp</strong><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: #008000">//</span><span style="COLOR: #008000">&nbsp;MyApp.cpp</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></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">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">"</span><span style="COLOR: #000000">MyApp.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>MyApp::MyApp()<br><img id=Codehighlighter1_69_71_Open_Image onclick="this.style.display='none'; Codehighlighter1_69_71_Open_Text.style.display='none'; Codehighlighter1_69_71_Closed_Image.style.display='inline'; Codehighlighter1_69_71_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_69_71_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_69_71_Closed_Text.style.display='none'; Codehighlighter1_69_71_Open_Image.style.display='inline'; Codehighlighter1_69_71_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_69_71_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_69_71_Open_Text><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>MyApp::</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">MyApp()<br><img id=Codehighlighter1_90_92_Open_Image onclick="this.style.display='none'; Codehighlighter1_90_92_Open_Text.style.display='none'; Codehighlighter1_90_92_Closed_Image.style.display='inline'; Codehighlighter1_90_92_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_90_92_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_90_92_Closed_Text.style.display='none'; Codehighlighter1_90_92_Open_Image.style.display='inline'; Codehighlighter1_90_92_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_90_92_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_90_92_Open_Text><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;MyApp::createScene()<br><img id=Codehighlighter1_121_123_Open_Image onclick="this.style.display='none'; Codehighlighter1_121_123_Open_Text.style.display='none'; Codehighlighter1_121_123_Closed_Image.style.display='inline'; Codehighlighter1_121_123_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_121_123_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_121_123_Closed_Text.style.display='none'; Codehighlighter1_121_123_Open_Image.style.display='inline'; Codehighlighter1_121_123_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_121_123_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_121_123_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br><br>然后修改<strong>OgreDemo.cpp</strong>中的代码如下：<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: #008000">//</span><span style="COLOR: #008000">&nbsp;OgreDemo.cpp&nbsp;:&nbsp;Defines&nbsp;the&nbsp;entry&nbsp;point&nbsp;for&nbsp;the&nbsp;console&nbsp;application.<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></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">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">"</span><span style="COLOR: #000000">MyApp.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_152_188_Open_Image onclick="this.style.display='none'; Codehighlighter1_152_188_Open_Text.style.display='none'; Codehighlighter1_152_188_Closed_Image.style.display='inline'; Codehighlighter1_152_188_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_152_188_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_152_188_Closed_Text.style.display='none'; Codehighlighter1_152_188_Open_Image.style.display='inline'; Codehighlighter1_152_188_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_152_188_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_152_188_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;MyApp&nbsp;app;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;app.go();<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></div>
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;这样C++代码中就应该没什么问题了，接着就是lib链接库的问题，因为编译完成进行链接时出现了找不到链接库的问题。解决方法是，在&#8220;工程属性页 -&gt; <span style="COLOR: #ff0000">Configuration Properties</span> -&gt; <span style="COLOR: #ff0000">Linker</span> -&gt; <span style="COLOR: #ff0000">General</span> -&gt; <span style="COLOR: #ff0000">Additional Library Directories</span>&#8221;中添加lib目录路径；在&#8220;工程属性页 -&gt; <span style="COLOR: #ff0000">Configuration Properties</span> -&gt; <span style="COLOR: #ff0000">Linker</span> -&gt; <span style="COLOR: #ff0000">Input</span> -&gt; <span style="COLOR: #ff0000">Additional Dependencies</span>&#8221;添加所需的库文件名。路径：&#8220;<span style="COLOR: #0000ff">$(OGRE_SDK)\boost_1_42\lib;$(OGRE_SDK)\lib\debug</span>&#8221;，lib库：&#8220;<span style="COLOR: #0000ff">OgreMain_d.lib OIS_d.lib</span>&#8221;<br><img height=588 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/005.gif" width=749 border=0><br><br><img height=588 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/006.gif" width=749 border=0><br><br>设置完成之后编译，编译通过：<br><span style="COLOR: #ff6600">------ Build started: Project: OgreDemo, Configuration: Debug Win32 ------<br>Linking...<br>Embedding manifest...<br>Build log was saved at "file://e:\ogre\OgreDemo\OgreDemo\Debug\BuildLog.htm"<br>OgreDemo - 0 error(s), 0 warning(s)<br>========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========</span><br><br>编译完成之后，接下来按<span style="COLOR: red">F5</span>运行程序&#8230;&#8230;<br>是的，运行出现了错误提示：<br><img height=124 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/007.gif" width=570 border=0><br><br>&nbsp;&nbsp;&nbsp;&nbsp;那是因为没有设置工程输出目录，也没有配置调试目录。打开工程属性，将&#8220;<span style="COLOR: red">Configuration Properties</span> -&gt; <span style="COLOR: red">General</span> -&gt; <span style="COLOR: red">Output Directory</span>&#8221;改为&#8220;<span style="COLOR: #0000ff">$(OGRE_SDK)\bin\debug</span>&#8221;；将&#8220;<span style="COLOR: red">Configuration Properties</span> -&gt; <span style="COLOR: red">Debugging</span> -&gt; <span style="COLOR: red">Working Directory</span>&#8221;改为&#8220;<span style="COLOR: #0000ff">$(OutDir)</span>&#8221;。<br><img height=587 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/008.GIF" width=747 border=0><br><br>&nbsp;&nbsp;&nbsp;&nbsp;设置完成后再运行，出现下图的界面则表示OGRE的app程序已经成功运行，点击确定，展现在面前的就是这第一个窗口程序——空白的黑色窗口。<br><img height=735 alt="" src="http://www.cppblog.com/images/cppblog_com/ogre3d/009.gif" width=500 border=0><br><br>至此，我们完成了一个&#8220;Hello World&#8221;的窗口程序，一个引用了OGRE引擎动态链接库的窗口程序。<br><br><br><br><br><br></span> <img src ="http://www.cppblog.com/OGRE3D/aggbug/117597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/OGRE3D/" target="_blank">OGRE3D游戏开发</a> 2010-06-12 01:25 <a href="http://www.cppblog.com/OGRE3D/articles/117597.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SampleBrowser的编译运行</title><link>http://www.cppblog.com/OGRE3D/articles/117529.html</link><dc:creator>OGRE3D游戏开发</dc:creator><author>OGRE3D游戏开发</author><pubDate>Thu, 10 Jun 2010 13:52:00 GMT</pubDate><guid>http://www.cppblog.com/OGRE3D/articles/117529.html</guid><wfw:comment>http://www.cppblog.com/OGRE3D/comments/117529.html</wfw:comment><comments>http://www.cppblog.com/OGRE3D/articles/117529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/OGRE3D/comments/commentRss/117529.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/OGRE3D/services/trackbacks/117529.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因为之前已经安装了DirectX9.0c August 2009，SampleBrowser的编译没有出现太大的问题。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;个人在编译运行的时候出现过两个问题：Project : error PRJ0019: A tool returned an error code from "Performing Pre-Link Event..."、缺少d3dx9_42.dll文件。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于SampleBrowser的编译运行时出现的问题，在网上都应该能够找到相应的解决方法。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;运行SampleBrowser，大概了解一下引擎的效果；扫了一下工程代码，看其框架结构；接着看看文档，网上查一查入门资料；算是为以后的学习开发做些心理上的准备。</span> <br><br><br><br><br><br><br><br>  <img src ="http://www.cppblog.com/OGRE3D/aggbug/117529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/OGRE3D/" target="_blank">OGRE3D游戏开发</a> 2010-06-10 21:52 <a href="http://www.cppblog.com/OGRE3D/articles/117529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开博客之前对OGRE的了解以及所做的开发准备</title><link>http://www.cppblog.com/OGRE3D/articles/117513.html</link><dc:creator>OGRE3D游戏开发</dc:creator><author>OGRE3D游戏开发</author><pubDate>Wed, 09 Jun 2010 16:30:00 GMT</pubDate><guid>http://www.cppblog.com/OGRE3D/articles/117513.html</guid><wfw:comment>http://www.cppblog.com/OGRE3D/comments/117513.html</wfw:comment><comments>http://www.cppblog.com/OGRE3D/articles/117513.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/OGRE3D/comments/commentRss/117513.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/OGRE3D/services/trackbacks/117513.html</trackback:ping><description><![CDATA[<span style="COLOR: red"><strong>OGRE3D</strong><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 10pt">OGRE3D是一个被广泛使用的开源三维图形渲染库(3D图形引擎)，可以应用于网络游戏的客户端开发。</span><br><br><strong style="COLOR: red">开发学习准备</strong><br><strong>VC++</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 10pt">版本：Microsoft Visual Studio 2008 Version 9.0.21022.8 RTM —— Microsoft Visual C++ 2008</span><br><br><strong>OgreSDK</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 10pt">版本：1.7.1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装文件：<a href="http://downloads.sourceforge.net/project/ogre/ogre/1.7/OgreSDK_vc9_v1-7-1p1.exe?use_mirror=cdnetworks-kr-2" target=_blank>OgreSDK_vc9_v1-7-1p1.exe</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装目录：E:\ogre\OgreSDK_vc9_v1-7-1</span><br><br><strong>OgreSource<br></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 10pt">版本：1.7.1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装文件：<a href="http://downloads.sourceforge.net/project/ogre/ogre/1.7/ogre_src_v1-7-1.exe?use_mirror=cdnetworks-kr-1" target=_blank>ogre_src_v1-7-1.exe</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装目录：E:\ogre\ogre_src_v1-7-1</span><br><br><strong>翻译文档</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 10pt"><a href="http://www.cppblog.com/Files/OGRE3D/OGRE中文帮助手册.rar" target=_blank>OGRE中文帮助手册</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.cppblog.com/Files/OGRE3D/Pro%20OGRE%203D%20Programming.rar" target=_blank>Pro OGRE 3D Programming中文翻译</a></span> <br><br><br><br><br><br><br>
<img src ="http://www.cppblog.com/OGRE3D/aggbug/117513.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/OGRE3D/" target="_blank">OGRE3D游戏开发</a> 2010-06-10 00:30 <a href="http://www.cppblog.com/OGRE3D/articles/117513.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>