﻿<?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++博客-lua</title><link>http://www.cppblog.com/makiv/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:09:54 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:09:54 GMT</pubDate><ttl>60</ttl><item><title>游戏开发辅助库</title><link>http://www.cppblog.com/makiv/archive/2013/10/16/203765.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Wed, 16 Oct 2013 05:26:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2013/10/16/203765.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/203765.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2013/10/16/203765.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/203765.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/203765.html</trackback:ping><description><![CDATA[<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t0"></a><span style="font-size: 14px">Debuggers</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">Debugging Tools for Windows</span><br /><span style="line-height: 21px; font-size: 14px">http://www.microsoft.com/whdc/devtools/debugging/default.mspx/</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t1"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__04740278518380869" name="__04740278518380869"></a>源码控制</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">TortoiseCVS</span><br /><span style="line-height: 21px; font-size: 14px">http://www.tortoisecvs.org/</span><br /><span style="line-height: 21px; font-size: 14px">CVSGui</span><br /><span style="line-height: 21px; font-size: 14px">http://www.wincvs.org/</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t2"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="CPU_" name="CPU_"></a>CPU性能分析器</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">在开发进程的最后时刻, 需要优化你的代码和解决瓶颈, 下面的工具可以帮助你发现瓶颈, 找出每个函数所占用的时间和内存</span><br /><span style="line-height: 21px; font-size: 14px">内存和时间性能分析其</span><br /><span style="line-height: 21px; font-size: 14px">Glowcode</span><br /><span style="line-height: 21px; font-size: 14px">http://www.glowcode.com/</span><br /><span style="line-height: 21px; font-size: 14px">CodeAnalyst</span><br /><span style="line-height: 21px; font-size: 14px">http://developer.amd.com/CPU/CODEANALYST/Pages/default.aspx</span><br /><span style="line-height: 21px; font-size: 14px">DevPartner</span><br /><span style="line-height: 21px; font-size: 14px">http://www.compuware.com/products/devpartner/default.htm</span><br /><span style="line-height: 21px; font-size: 14px">内存性能分析器</span><br /><span style="line-height: 21px; font-size: 14px">MemProf</span><br /><span style="line-height: 21px; font-size: 14px">http://www.gnome.org/projects/memprof/</span><br /><span style="line-height: 21px; font-size: 14px">时间性能分析器</span><br /><span style="line-height: 21px; font-size: 14px">gprof</span><br /><span style="line-height: 21px; font-size: 14px">http://www.gnu.org/software/binutils/manual/gprof-2.9.1/html_mono/gprof.html</span><br /><span style="line-height: 21px; font-size: 14px">LTProf</span><br /><span style="line-height: 21px; font-size: 14px">http://www.lw-tech.com/help.php?folder=ltprof&amp;topic=AboutLTProf.htm</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t3"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="GPU_" name="GPU_"></a>GPU性能分析其</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">NVperfkit (contains NVperfHUD)</span><br /><span style="line-height: 21px; font-size: 14px">http://developer.nvidia.com/object/nvperfkit_home.html</span><br /><span style="line-height: 21px; font-size: 14px">PIX (Performance Investigation for directX)</span><br /><span style="line-height: 21px; font-size: 14px">http://msdn.microsoft.com/library/en-us/directx9_c/directx/directxsdk/tools/performance.asp</span><br /><span style="line-height: 21px; font-size: 14px">ATI plugin for Microsoft's PIX performance analysis tool</span><br /><span style="line-height: 21px; font-size: 14px">http://www.ati.com/developer/atipix/</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t4"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__4263171898199466" name="__4263171898199466"></a>代码编写</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">SciTE</span><br /><span style="line-height: 21px; font-size: 14px">http://scintilla.sourceforge.net/SciTEDownload.html</span><br /><span style="line-height: 21px; font-size: 14px">免费的源码编辑组件</span><br /><span style="line-height: 21px; font-size: 14px">Artistic Style</span><br /><span style="line-height: 21px; font-size: 14px">http://sourceforge.net/projects/astyle/</span><br /><span style="line-height: 21px; font-size: 14px">源码缩进和重置格式工具</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t5"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__81110529630688" name="__81110529630688"></a>工程管理工具</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">Open Workbench</span><br /><span style="line-height: 21px; font-size: 14px">http://www.openworkbench.org/</span><br /><span style="line-height: 21px; font-size: 14px">MS工程的另一个选择</span><br /><span style="line-height: 21px; font-size: 14px">Overlord</span><br /><span style="line-height: 21px; font-size: 14px">http://www.phpoverlord.com/</span><br /><span style="line-height: 21px; font-size: 14px">WebCollab</span><br /><span style="line-height: 21px; font-size: 14px">http://webcollab.sourceforge.net/</span><br /><span style="line-height: 21px; font-size: 14px">基于网络的系统工程和工程管理</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t6"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__9505968705825707" name="__9505968705825707"></a>其他工具</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">TUT: C++ Unit Test Framework</span><br /><span style="line-height: 21px; font-size: 14px">http://tut-framework.sourceforge.net/</span><br /><span style="line-height: 21px; font-size: 14px">C++的单元测试框架</span><br /><span style="line-height: 21px; font-size: 14px">CppUnit</span><br /><span style="line-height: 21px; font-size: 14px">http://cppunit.sourceforge.net/cppunit-wiki/</span><br /><span style="line-height: 21px; font-size: 14px">C__的单元测试框架</span><br /><span style="line-height: 21px; font-size: 14px">NSIS</span><br /><span style="line-height: 21px; font-size: 14px">http://nsis.sourceforge.net/Main_Page</span><br /><span style="line-height: 21px; font-size: 14px">创建安装文件</span><br /><span style="line-height: 21px; font-size: 14px">Inno Setup</span><br /><span style="line-height: 21px; font-size: 14px">http://www.jrsoftware.org/isinfo.php</span><br /><span style="line-height: 21px; font-size: 14px">创建安装文件</span></p>
<h1 style="padding-bottom: 0.5em; margin: 0px; padding-left: 1.5em; padding-right: 0px; font-family: 'Microsoft yahei', heiti, verdana, sans-serif; font-size: 15px; padding-top: 0px"><a name="t7"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="Ogre_" name="Ogre_"></a>Ogre的相关库</span></h1>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t8"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__6379144935678024" name="__6379144935678024"></a>应用程序框架</span></h2>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t9"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__19620943197352048" name="__19620943197352048"></a>活跃的框架</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">NeoAxis Engine</span><br /><span style="line-height: 21px; font-size: 14px">http://www.neoaxisgroup.com/</span><br /><span style="line-height: 21px; font-size: 14px">通用的新式3D图形引擎, 用于3D模拟, 可视化和游戏. 包含许多的编辑器, 如场景, 物理, 材质, 粒子等等.</span><br /><span style="line-height: 21px; font-size: 14px">使用C#用于脚本.</span><br /><span style="line-height: 21px; font-size: 14px">OGE - Open Game Engine</span><br /><span style="line-height: 21px; font-size: 14px">http://sourceforge.net/projects/oge/</span><br /><span style="line-height: 21px; font-size: 14px">跨平台, 多线程的游戏引擎</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t10"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_" name="_"></a>半活跃的框架</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">The YAKE Engine</span><br /><span style="line-height: 21px; font-size: 14px">http://www.yake.org/</span><br /><span style="line-height: 21px; font-size: 14px">跨平台, 游戏引擎.<span class="Apple-converted-space"> </span></span><br /><span style="line-height: 21px; font-size: 14px">WGE</span><br /><span style="line-height: 21px; font-size: 14px">http://www.wreckedgames.com/forum/</span><br /><span style="line-height: 21px; font-size: 14px">SagaEngine</span><br /><span style="line-height: 21px; font-size: 14px">http://www.sagaengine.com/</span><br /><span style="line-height: 21px; font-size: 14px">多平台的游戏引擎.</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t11"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__8376091909698482" name="__8376091909698482"></a>物理</span></h2>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t12"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_ODE" name="_ODE"></a>ODE</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://ode.org/</span><br /><span style="line-height: 21px; font-size: 14px">Ogre使用比较广泛的库, 可用OgreODE</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t13"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_NovodeX_PhysX" name="_NovodeX_PhysX"></a>NovodeX/PhysX</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://www.novodex.com/</span><br /><span style="line-height: 21px; font-size: 14px">非商业用途, 两个物理包装 NxOgre和Nogredex</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t14"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Newton_Game_Dynamics" name="_Newton_Game_Dynamics"></a>Newton Game Dynamics</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://www.newtondynamics.com/</span><br /><span style="line-height: 21px; font-size: 14px">你只需要知道基本的物理法则实现产生真实的物理行为. OgreNewt库可以让Newton物理库和你的Ogre应用程序成为一体</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t15"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_True_Axis_Physics_SDK" name="_True_Axis_Physics_SDK"></a>True Axis Physics SDK</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://www.trueaxis.com/</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t16"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_DynaMo" name="_DynaMo"></a>DynaMo</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://home.iae.nl/users/starcat/dynamo</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t17"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_The_Gangsta_Wrapper" name="_The_Gangsta_Wrapper"></a>The Gangsta Wrapper</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://sourceforge.net/projects/gangsta</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t18"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OPAL" name="_OPAL"></a>OPAL</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://opal.sf.net/</span><br /><span style="line-height: 21px; font-size: 14px">开放物理抽象层(Open Physics Abstraction Layer), Ode的高层接口.</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t19"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Bullet" name="_Bullet"></a>Bullet</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://bullet.sf.net/</span></p>
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t20"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="Artificial_intelligence_" name="Artificial_intelligence_"></a>Artificial intelligence (人工智能)</span></h2>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">现在关于AI引擎应该包含什么内容还没有标准化, 但是已有足够的普通AI问题在游戏中.</span><br /><span style="line-height: 21px; font-size: 14px">例如路径查找, 需要一次又一次的重写该算法.</span><br /><span style="line-height: 21px; font-size: 14px">大多数Ogre工程使用自定义构建的AI库</span></p>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t21"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OpenAI" name="_OpenAI"></a>OpenAI</span></h3>
<p style="padding-bottom: 0px; margin: 1em 0px 0.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="line-height: 21px; font-size: 14px">http://openai.sourceforge.net/</span></p>
<div><span style="font-size: 14px">该AI库的目标是用于OpenGL的图形程序. 也意味着不能和DirectX无缝地结合.</span><br /><span style="font-size: 14px">该AI库用Java所写.</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t22"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_FEAR" name="_FEAR"></a>FEAR</span></h3><span style="font-size: 14px">http://fear.sourceforge.net/index.php</span><br /><span style="font-size: 14px">该库还在完成中, 没准备实时或游戏应用程序.</span><br /><span style="font-size: 14px">测试和使用该库需要Quake 2</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t23"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OpenSteer" name="_OpenSteer"></a>OpenSteer</span></h3><span style="font-size: 14px">http://opensteer.sourceforge.net/</span><br /><span style="font-size: 14px">C++库, 帮助创造游戏和动画中自主角色的驾驶行为. OpenSteer提供了基于OpenGL的应用程序 OpenSteerDemo,<span class="Apple-converted-space"> </span></span><br /><span style="font-size: 14px">该Demo显示了预定的驾驶行为. 通过写OpenSteerDemo的插件, 可以快速的使用该用户为原型, 注解, 调试新的驾驶行为.</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t24"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_A_Tactical_Pathfinding" name="_A_Tactical_Pathfinding"></a>A* Tactical Pathfinding</span></h3><span style="font-size: 14px">http://www.cgf-ai.com/products.html#tacastarexplorer</span><br /><span style="font-size: 14px">在"游戏程序精粹III(Game Programming Gems III book)"中有过描述,<span class="Apple-converted-space"> </span></span><br /><span style="font-size: 14px">该简单的方法可以创建战术路径添加新的花费给A*花费函数, 这个新的花费会反映到暴露给敌人, 且相互射击</span><br /><span style="font-size: 14px">在 http://robertwrose.com/cg 查看Ogre关于A*路径查找的实现</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t25"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_PathLib" name="_PathLib"></a>PathLib</span></h3><span style="font-size: 14px">http://pathlib.hildebrand.cz/pathlib.html</span><br /><span style="font-size: 14px">免费的C++ A*路径查找, 快速且健壮. 带有windows demo, 允许路径测试和地图编辑(支持路径查找组)</span><br /><span style="font-size: 14px">见 http://robertwrose.com/cg 查看Ogre关于A*路径查找的实现</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t26"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Garfixia_AI_Repository" name="_Garfixia_AI_Repository"></a>Garfixia AI Repository</span></h3><span style="font-size: 14px">http://www.dossier-andreas.net/ai/index.html</span><br /><span style="font-size: 14px">该站点包含AI技术的开源库, 用C++编写. 很棒的材料, 非常宝贵的起点: FSM(有限状态机), fuzzy, 学习树等, 好东西</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t27"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_MicroPather" name="_MicroPather"></a>MicroPather</span></h3><span style="font-size: 14px">http://www.grinninglizard.com/MicroPather/</span><br /><span style="font-size: 14px">根据网页介绍:"MicroPather是一个路径查找方法和A*解决方案, 无关平台的C++代码, 可以很轻易的嵌入已存代码. MicroPather关注视频游戏的路径查找引擎"</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t28"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Boost_Graph_Library" name="_Boost_Graph_Library"></a>Boost Graph Library</span></h3><span style="font-size: 14px">http://boost.org/libs/graph/doc/table_of_contents.html</span><br /><span style="font-size: 14px">无关平台, 可以执行A*查找</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t29"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_FANN" name="_FANN"></a>FANN</span></h3><span style="font-size: 14px">http://leenissen.dk/fann/</span><br /><span style="font-size: 14px">无关平台, 页面介绍:</span><br /><span style="font-size: 14px">FANN(Fast Artificial Neural Network Library - 快速人工神经网络库), 免费开源神经网络库</span><br /><span style="font-size: 14px">用C实现多层人工神经网络, 支持全连接和稀疏连接网络.<span class="Apple-converted-space"> </span></span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t30"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OpenSkyNet" name="_OpenSkyNet"></a>OpenSkyNet</span></h3><span style="font-size: 14px">http://openskynet.sourceforge.net/</span><br /><span style="font-size: 14px">A*路径查找库, 多个对象可以使用相同的格子, C++</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t31"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Recast" name="_Recast"></a>Recast</span></h3><span style="font-size: 14px">http://code.google.com/p/recastnavigation/</span><br /><span style="font-size: 14px">无关平台, Recast 是游戏的美术导航网格构造工具集的状态.</span><br />
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t32"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__6336126035022833" name="__6336126035022833"></a>网络</span></h2><span style="font-size: 14px">需要处理网络性能, 容错, 同时发生控制和安全问题. 大多数Ogre基于自定义网络库.</span><br /><span style="font-size: 14px">下列库对于一些Ogre用户比较有用.<span class="Apple-converted-space"> </span></span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t33"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_RakNet" name="_RakNet"></a>RakNet</span></h3><span style="font-size: 14px">http://freshmeat.net/projects/raknet</span><br /><span style="font-size: 14px">网页介绍:</span><br /><span style="font-size: 14px">RakNet是一个网络API, Windows, Linux和Unix的可靠的UDP和高层功能的包装</span><br /><span style="font-size: 14px">它允许在相同的电脑或者LAN或者因特网任意应用程序联系其他应用程序</span><br /><span style="font-size: 14px">虽然他可用于任意网络应用程序, 但他可以快速开发在线游戏和添加多个玩家至单个用户游戏.</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t34"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OpenTNL" name="_OpenTNL"></a>OpenTNL</span></h3><span style="font-size: 14px">http://www.opentnl.org/</span><br /><span style="font-size: 14px">页面介绍:</span><br /><span style="font-size: 14px">这个转矩库(Torque Network)是一个强壮的, 安全的, 易使用的跨平台C++网络API, 设计于高性能方针和游戏</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t35"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Zoidcom" name="_Zoidcom"></a>Zoidcom</span></h3><span style="font-size: 14px">http://www.zoidcom.com/</span><br /><span style="font-size: 14px">网页介绍:</span><br /><span style="font-size: 14px">Zoidcom 是一个基于UDP的高层网络库, 在网络连接之上以高效的方式复制游戏对象和同步他们的状态.</span><br /><span style="font-size: 14px">通过多路传送对象信息给位流, 或者取出对象信息. 可以方式发送多余的数据</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t36"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_HawkNL" name="_HawkNL"></a>HawkNL</span></h3><span style="font-size: 14px">http://www.hawksoft.com/hawknl/</span><br /><span style="font-size: 14px">页面介绍: 面向游戏的网络API, 底层API. Berkeley/Unix Sockets 和 Winsock的包装.</span><br /><span style="font-size: 14px">其他的特色: sockets组, sockets统计, 高精确计数器, CRC功能, 用宏读取和写数据来打包endian转换. 支持多重网络传输</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t37"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_ENet" name="_ENet"></a>ENet</span></h3><span style="font-size: 14px">http://enet.bespin.org/ </span><br /><span style="font-size: 14px">页面介绍: 目标是提供一个在UDP上的相对简单, 单纯, 健壮的网络通讯层, 主要特色是提供一个可选的可依赖性, 有次序的传送包</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t38"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_ZIGE_Game_Engine_" name="_ZIGE_Game_Engine_"></a>ZIGE Game Engine:</span></h3><span style="font-size: 14px">http://zige.sourceforge.net/</span><br /><span style="font-size: 14px">页面介绍:<span class="Apple-converted-space"> </span></span><br /><span style="font-size: 14px">可扩展的客户端-服务器游戏引擎. 除了网络, 还提供其他功能:</span><br /><span style="font-size: 14px">日志, 互动调试控制台, 时间控制(用于客户端帧率和服务器发包率), 自动从服务器下载游戏文件到客户端, 等等</span><br /><span style="font-size: 14px">从ZIG的角度看, 需要提供图形渲染器, 声音引擎, 和输入处理的扩展.</span><br /><span style="font-size: 14px">你可以插入 Allegro, SDL, DirectX, OpenGL 等.<span class="Apple-converted-space"> </span></span><br /><span style="font-size: 14px">ZIP是依赖HaukNL和Pthreads的跨平台C/C++库</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t39"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_SDL_net" name="_SDL_net"></a>SDL_net</span></h3><span style="font-size: 14px">http://www.libsdl.org/projects/SDL_net/</span><br /><span style="font-size: 14px">网页介绍</span><br /><span style="font-size: 14px">SDL_net是一个小且简单的跨平台网络库, 由SDL支持</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t40"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OgreSocks" name="_OgreSocks"></a>OgreSocks</span></h3><span style="font-size: 14px">http://sourceforge.net/projects/ogresocks/</span><br /><span style="font-size: 14px">OgreSocks 是winsock的包装类, 面向Ogre开发者的首要网络库. 可以用最少的代码统合客户端和服务器的socket</span><br />
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t41"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__5184622749341149" name="__5184622749341149"></a>声音</span></h2><span style="font-size: 14px">游戏和仿真程序极大的依赖声音和音乐提供氛围</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t42"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_FMOD" name="_FMOD"></a>FMOD</span></h3><span style="font-size: 14px">http://www.fmod.org/</span><br /><span style="font-size: 14px">网页介绍:</span><br /><span style="font-size: 14px">FMOD 支持3D声音, midi, mods, mp3, ogg vorbis, wma, aiff, 录音, 阻塞/环绕, cd回放, mmx, 因特流, dsp效果, 声谱分析</span><br /><span style="font-size: 14px">用户采样, 同步支持, ASIO, EAX 2&amp;3等等</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t43"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OpenAL" name="_OpenAL"></a>OpenAL</span></h3><span style="font-size: 14px">http://www.openal.org/</span><br /><span style="font-size: 14px">网页介绍: 跨平台的3D声音API, 适合游戏应用程序以及其他类型的声音应用程序.</span><br /><span style="font-size: 14px">两个OGRE包装为OgreOggSound和OgreAL</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t44"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_BASS" name="_BASS"></a>BASS</span></h3><span style="font-size: 14px">http://www.un4seen.com/bass.html</span><br /><span style="font-size: 14px">网页介绍: BASS是一个用于Windows软件的声音库, 目标是提供最强大和有效的工具给开发者,</span><br /><span style="font-size: 14px">可以采样, 处理流(MP3, MP2, MP1, OGG, WAV, 自生成的流以及其他), MOD音乐(XM, IT, S3M, MOD, MTM, UMX)</span><br /><span style="font-size: 14px">MO3音乐(MP3/OGG压缩MODs), 和录音功能, 这一切都在小小的DLL里面, 大小少于100K</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t45"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Audiere" name="_Audiere"></a>Audiere</span></h3><span style="font-size: 14px">http://audiere.sourceforge.net/</span><br /><span style="font-size: 14px">Audiere 是一个声音的高层API, 可以播放Ogg Vorbis, MP3, FLAC,未压缩 WAV, AIFF, MOD, S3M, XM, 和 IT</span><br /><span style="font-size: 14px">作为声音输出, Audiere支持 DirectSound或Windows的WinMM, Linux的OSS, Cygwin, SGI AL<span class="Apple-converted-space"> </span></span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t46"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_irrKlang_" name="_irrKlang_"></a>irrKlang:</span></h3><span style="font-size: 14px">http://ambiera.com/irrklang</span><br /><span style="font-size: 14px">页面介绍: 3D和2D跨平台声音库, 可播放WAV, MP3, OGG, MOD, XM, IT, S3M 和更多的文件格式, 可用于C__和所有的.NET语言</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t47"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_cAudio_" name="_cAudio_"></a>cAudio:</span></h3><span style="font-size: 14px">http://deathtouchstudios.com/xoops/modules/smartsection/item.php?itemid=3</span><br /><span style="font-size: 14px">页面介绍:</span><br /><span style="font-size: 14px">cAudio引擎是OpenAL的C++的包装, 允许你很轻易的得到声音和音乐, 并放入你的游戏中.</span><br /><span style="font-size: 14px">OpenAL的问题是其非常难以用在游戏中. cAudio使用OpenAL控制声音的所有方面.</span><br /><span style="font-size: 14px">Vorbis库用于解码和播放.ogg文件按, Mikmod用于mod,xm,it,和 s3d支持</span><br />
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t48"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__291108271105989" name="__291108271105989"></a>脚本</span></h2>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t49"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Lua" name="_Lua"></a>Lua</span></h3><span style="font-size: 14px">http://www.lua.org/</span><br /><span style="font-size: 14px">可以被Ogre调用的库, 可以在C++应用程序中调用</span><br /><span style="font-size: 14px">网页介绍:</span><br /><span style="font-size: 14px">基于关联数组和可扩展的语义, 组合了简单的过程语义和强大的数据描述. Lua是动态类型, 逐字节解释, 自动内存管理(垃圾回收)</span><br /><span style="font-size: 14px">适合配置, 脚本, 和快速构造原型. 可通过luabind将Lua程序嵌入Ogre中</span><br /><span style="font-size: 14px">luabind</span><br /><span style="font-size: 14px">http://www.rasterbar.com/products/luabind.html</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t50"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_LuaPlus" name="_LuaPlus"></a>LuaPlus</span></h3><span style="font-size: 14px">http://luaplus.org/tiki-index.php?page=LuaPlus%20Home%20Page</span><br /><span style="font-size: 14px">Lua面向C++的调试工具(visual studio插件), 优化</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t51"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Java" name="_Java"></a>Java</span></h3><span style="font-size: 14px">http://java.sun.com/</span><br /><span style="font-size: 14px">可通过Ogre扩展ogre4j在Ogre中使用Java</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t52"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Python" name="_Python"></a>Python</span></h3><span style="font-size: 14px">http://www.python.org/</span><br /><span style="font-size: 14px">动态类型的, 字节码解释性, 面向对象的语言.</span><br /><span style="font-size: 14px">可通过PyOgre使用Python</span><br /><span style="font-size: 14px">在Ogre C++应用程序中内嵌Python脚本</span><br /><span style="font-size: 14px">http://www.ogre3d.org/forums/viewtopic.php?t=8131</span><br /><span style="font-size: 14px">psyco</span><br /><span style="font-size: 14px">http://psyco.sourceforge.net/</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t53"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Ruby" name="_Ruby"></a>Ruby</span></h3><span style="font-size: 14px">http://www.ruby-lang.org/en</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t54"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Squirrel" name="_Squirrel"></a>Squirrel</span></h3><span style="font-size: 14px">http://squirrel-lang.org/</span><br /><span style="font-size: 14px">Squirrel 是一高级命令/面向对象的程序语言. 设计于一强大的脚本工具, 使其对应用程序有合适的大小, 内存大小, 和实时需求</span><br /><span style="font-size: 14px">语法类似C/C++/Java, 也有像 python/lua的动态性质.</span><br /><span style="font-size: 14px">API类似Lua</span><br /><span style="font-size: 14px">wiki入口</span><br /><span style="font-size: 14px">http://www.ogre3d.org/wiki/index.php/Squirrel_Scripting_Language</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t55"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_AngelScript" name="_AngelScript"></a>AngelScript</span></h3><span style="font-size: 14px">http://www.angelcode.com/angelscript/</span><br /><span style="font-size: 14px">高级程序语言, 语法类似C/C++</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t56"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_GameMonkey" name="_GameMonkey"></a>GameMonkey</span></h3><span style="font-size: 14px">http://www.somedude.net/gamemonkey/</span><br /><span style="font-size: 14px">高级内嵌脚本语言, 类似Lua和AngleScript</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t57"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Falcon" name="_Falcon"></a>Falcon</span></h3><span style="font-size: 14px">http://www.falconpl.org/</span><br /><span style="font-size: 14px">提供了六个完整的程序示例: 过程式, 面向对象, 面向原型, 功能性的, 表格式的, 面向消息. 多线程, 且类似于Lua的基本语法</span><br />
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t58"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__47696112609874664" name="__47696112609874664"></a>输入</span></h2>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t59"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OIS" name="_OIS"></a>OIS</span></h3><span style="font-size: 14px">http://sourceforge.net/projects/wgois</span><br /><span style="font-size: 14px">OIS是输入管理的库, 非常易于使用, 可用于多平台</span><br /><span style="font-size: 14px">Wiki</span><br /><span style="font-size: 14px">http://www.ogre3d.org/wiki/index.php/Using_OIS</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t60"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_SDL" name="_SDL"></a>SDL</span></h3><span style="font-size: 14px">http://www.libsdl.org/</span><br /><span style="font-size: 14px">页面介绍:</span><br /><span style="font-size: 14px">Simple DirectMedia Layer的缩写, 是一个跨平台的多媒体库, 设计用于底层访问声音, 键盘, 鼠标, 摇杆, 通过OpenGL访问3D硬件, 2D显卡缓存</span><br /><span style="font-size: 14px">如何在Ogre中使用SDL</span><br /><span style="font-size: 14px">http://www.ogre3d.org/wiki/index.php/Using_SDL_Input</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t61"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_LibGII" name="_LibGII"></a>LibGII</span></h3><span style="font-size: 14px">http://www.ggi-project.org/packages/libgii.html</span><br /><span style="font-size: 14px">页面介绍:<span class="Apple-converted-space"> </span></span><br /><span style="font-size: 14px">LibGII 面向图形的输入, 目标易用</span><br /><span style="font-size: 14px">如何在Ogre中使用</span><br /><span style="font-size: 14px">http://www.ogre3d.org/wiki/index.php/GII</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t62"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OpenInput" name="_OpenInput"></a>OpenInput</span></h3><span style="font-size: 14px">http://home.gna.org/openinput</span><br /><span style="font-size: 14px">跨平台, 易用和轻量的输入处理库, 用C语言所写</span><br />
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t63"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="GUI_" name="GUI_"></a>GUI</span></h2>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t64"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Berkelium" name="_Berkelium"></a>Berkelium</span></h3><span style="font-size: 14px">http://www.ogre3d.org/forums/viewtopic.php?f=11&amp;t=54484</span><br /><span style="font-size: 14px">用于Chrome浏览器的网页渲染器/包装</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t65"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_MyGui" name="_MyGui"></a>MyGui</span></h3><span style="font-size: 14px">http://www.ogre3d.org/addonforums/viewforum.php?f=17&amp;sid=2249e1917f815d6a9b1f397dd08b072c</span><br /><span style="font-size: 14px">好且完整的GUI系统</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t66"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Navi_" name="_Navi_"></a>Navi</span></h3><span style="font-size: 14px">http://princeofcode.com/forums</span><br /><span style="font-size: 14px">OGRE的网页渲染器, 支持flash, 使用Chromium网络工具包渲染引擎.</span><br /><span style="font-size: 14px">使用已存编辑器制作gui</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t67"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Hikari_" name="_Hikari_"></a>Hikari</span></h3><span style="font-size: 14px">http://princeofcode.com/forums</span><br /><span style="font-size: 14px">用于OGRE的flash播放器</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t68"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Cegui_Layout_Editor_" name="_Cegui_Layout_Editor_"></a>Cegui Layout Editor</span></h3><span style="font-size: 14px">http://www.cegui.org.uk/wiki/index.php/CELayoutEditor_Downloads_0.6.2</span><br /><span style="font-size: 14px">GUI编辑器, 用于CEGUI</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t69"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Open_GUI" name="_Open_GUI"></a>Open GUI</span></h3><span style="font-size: 14px">http://opengui.rightbracket.com/index.php</span><br /><span style="font-size: 14px">在3D应用程序中易用且易扩展的GUI框架</span><br />
<h2 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t70"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="__9208684275703075" name="__9208684275703075"></a>其他工具</span></h2>
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t71"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_Libnoise" name="_Libnoise"></a>Libnoise</span></h3><span style="font-size: 14px">http://libnoise.sourceforge.net/</span><br /><span style="font-size: 14px">libnoise 是一轻便的C++库, 用于生成协调的干扰, 平滑变化的干扰. Perlin干扰, 很多片段干扰, 以及其他类型相干干扰</span><br /><span style="font-size: 14px">可用于图形程序生成自然纹理, 行星地形和其他东西</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t72"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_OgreMP" name="_OgreMP"></a>OgreMP</span></h3><span style="font-size: 14px">https://sourceforge.net/projects/ogremp</span><br /><span style="font-size: 14px">用于Ogre的跨平台线程库</span><br />
<h3 style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><a name="t73"></a><span style="font-size: 14px"><a style="color: rgb(119,0,0); text-decoration: none" id="_SimpleFileWatcher" name="_SimpleFileWatcher"></a>SimpleFileWatcher</span></h3><span style="font-size: 14px">http://simplefilewatcher.googlecode.com/</span><br /><span style="font-size: 14px">跨平台, 得到文件/目录变化的的库</span></div><img src ="http://www.cppblog.com/makiv/aggbug/203765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2013-10-16 13:26 <a href="http://www.cppblog.com/makiv/archive/2013/10/16/203765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>thead</title><link>http://www.cppblog.com/makiv/archive/2013/09/29/203496.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Sun, 29 Sep 2013 15:31:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2013/09/29/203496.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/203496.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2013/09/29/203496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/203496.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/203496.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://blog.csdn.net/hzyong_c/article/details/8012963&nbsp; &nbsp;Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp; 1&nbsp;/**&nbsp;&nbsp;2&nbsp;...&nbsp;&nbsp;<a href='http://www.cppblog.com/makiv/archive/2013/09/29/203496.html'>阅读全文</a><img src ="http://www.cppblog.com/makiv/aggbug/203496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2013-09-29 23:31 <a href="http://www.cppblog.com/makiv/archive/2013/09/29/203496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rand</title><link>http://www.cppblog.com/makiv/archive/2013/05/21/200482.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Tue, 21 May 2013 15:58:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2013/05/21/200482.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/200482.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2013/05/21/200482.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/200482.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/200482.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//&nbsp;MersenneTwister.h//&nbsp;Mersenne&nbsp;Twister&nbsp;random&nbsp;number&nbsp;generator&...&nbsp;&nbsp;<a href='http://www.cppblog.com/makiv/archive/2013/05/21/200482.html'>阅读全文</a><img src ="http://www.cppblog.com/makiv/aggbug/200482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2013-05-21 23:58 <a href="http://www.cppblog.com/makiv/archive/2013/05/21/200482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>隨機數生成</title><link>http://www.cppblog.com/makiv/archive/2013/05/21/200480.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Tue, 21 May 2013 15:52:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2013/05/21/200480.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/200480.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2013/05/21/200480.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/200480.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/200480.html</trackback:ping><description><![CDATA[<p>inline void MTRand::reload()<br />{<br />&nbsp;// Generate N new values in state<br />&nbsp;// Made clearer and faster by Matthew Bellew (<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#97;&#116;&#116;&#104;&#101;&#119;&#46;&#98;&#101;&#108;&#108;&#101;&#119;&#64;&#104;&#111;&#109;&#101;&#46;&#99;&#111;&#109;">matthew.bellew@home.com</a>)<br />&nbsp;register uint32 *p = state;<br />&nbsp;register int i;<br />&nbsp;for( i = N - M; i--; ++p )<br />&nbsp;&nbsp;*p = twist( p[M], p[0], p[1] );<br />&nbsp;for( i = M; --i; ++p )<br />&nbsp;&nbsp;*p = twist( p[M-N], p[0], p[1] );<br />&nbsp;*p = twist( p[M-N], p[0], state[0] );</p>
<p>&nbsp;left = N, pNext = state;<br />}</p><br />uint32 randInt( const uint32&amp; n )<br />{<br />&nbsp;// Find which bits are used in n<br />&nbsp;// Optimized by Magnus Jonsson (<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#97;&#103;&#110;&#117;&#115;&#64;&#115;&#109;&#97;&#114;&#116;&#101;&#108;&#101;&#99;&#116;&#114;&#111;&#110;&#105;&#120;&#46;&#99;&#111;&#109;">magnus@smartelectronix.com</a>)<br />&nbsp;uint32 used = n;<br />&nbsp;used |= used &gt;&gt; 1;<br />&nbsp;used |= used &gt;&gt; 2;<br />&nbsp;used |= used &gt;&gt; 4;<br />&nbsp;used |= used &gt;&gt; 8;<br />&nbsp;used |= used &gt;&gt; 16;<br />&nbsp;<br />&nbsp;// Draw numbers until one is found in [0,n]<br />&nbsp;uint32 i;<br />&nbsp;do<br />&nbsp;&nbsp;i = randInt() &amp; used;&nbsp; // toss unused bits to shorten search<br />&nbsp;while( i &gt; n );<br />&nbsp;return i;<br />}<br /><br />inline MTRand::uint32 MTRand::randInt()<br />{<br />&nbsp;// Pull a 32-bit integer from the generator state<br />&nbsp;// Every other access function simply transforms the numbers extracted here<br />&nbsp;<br />&nbsp;if( left == 0 ) reload();<br />&nbsp;--left;<br />&nbsp;&nbsp;<br />&nbsp;register uint32 s1;<br />&nbsp;s1 = *pNext++;<br />&nbsp;s1 ^= (s1 &gt;&gt; 11);<br />&nbsp;s1 ^= (s1 &lt;&lt;&nbsp; 7) &amp; 0x9d2c5680UL;<br />&nbsp;s1 ^= (s1 &lt;&lt; 15) &amp; 0xefc60000UL;<br />&nbsp;return ( s1 ^ (s1 &gt;&gt; 18) );<br />}<br /><br />uint32 urand (uint32 min, uint32 max)<br />{<br />&nbsp; return mtRand.get ().randInt (max - min) + min;<br />}<br /><br /><br /><br />///////////////////<br />
<p>static long s_lHoldRand = 19790213L;<br />void rtRandomSeed(unsigned int seed)<br />{<br />&nbsp;&nbsp;&nbsp; s_lHoldRand = (long)seed;<br />}</p>
<p>int rtRandom()<br />{<br />&nbsp;&nbsp;&nbsp; return(((s_lHoldRand = s_lHoldRand * 214013L + 2531011L) &gt;&gt; 16) &amp; 0x7fff);<br />}<br /></p><img src ="http://www.cppblog.com/makiv/aggbug/200480.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2013-05-21 23:52 <a href="http://www.cppblog.com/makiv/archive/2013/05/21/200480.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>游戏开发之客户端技术总结</title><link>http://www.cppblog.com/makiv/archive/2013/04/03/199070.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Wed, 03 Apr 2013 06:48:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2013/04/03/199070.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/199070.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2013/04/03/199070.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/199070.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/199070.html</trackback:ping><description><![CDATA[客户端UI选择 <a href="http://www.mobilegamebase.com/blog/article.asp?id=31">http://www.mobilegamebase.com/blog/article.asp?id=31</a><img src ="http://www.cppblog.com/makiv/aggbug/199070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2013-04-03 14:48 <a href="http://www.cppblog.com/makiv/archive/2013/04/03/199070.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源图形引擎及开源游戏</title><link>http://www.cppblog.com/makiv/archive/2013/03/14/198426.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Thu, 14 Mar 2013 10:43:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2013/03/14/198426.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/198426.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2013/03/14/198426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/198426.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/198426.html</trackback:ping><description><![CDATA[<div style="margin-bottom: 8px; font-weight: bold">开源游戏引擎及游戏</div>1、游戏引擎<br />Ogre3D游戏引擎<br /><a href="http://www.ogre3d.org/">http://www.ogre3d.org/</a><br /><br />Quake3游戏引擎<br /><a href="http://www.ioquake3.org/">http://www.ioquake3.org/</a><br /><br /><a href="http://www.vorbis.com/">http://www.vorbis.com/</a><br /><br />http://www.libsdl.org/<br /><br />Irrlicht游戏引擎<br /><a href="http://irrlicht.sourceforge.net/">http://irrlicht.sourceforge.net/</a><br /><br />Crystalspace3D游戏引擎<br /><a href="http://www.crystalspace3d.org/main/Main_Page">http://www.crystalspace3d.org/main/Main_Page</a><br /><br />Sylphis3D 游戏引擎<br /><a href="http://devnet.sylphis3d.com/">http://devnet.sylphis3d.com/</a><br /><br />更多3D引擎参考List of game engines<br /><br />2、游戏<br /><a href="http://red.planetarena.org/">http://red.planetarena.org/</a><br /><a href="http://tremulous.net/">http://tremulous.net/</a><br /><a href="http://www.wesnoth.org/">http://www.wesnoth.org/</a><br /><a href="http://www.globulation2.org">http://www.globulation2.org</a><br /><a href="http://www.urbanterror.net/">http://www.urbanterror.net/</a><br /><a href="http://www.worldofpadman.com/">http://www.worldofpadman.com/</a><br /><a href="http://www.scorched3d.co.uk/">http://www.scorched3d.co.uk/</a><br /><a href="http://maniadrive.raydium.org/">http://maniadrive.raydium.org/</a><br /><a href="http://www.planeshift.it/">http://www.planeshift.it/</a><br /><br /><a class="postlink" href="https://developer.berlios.de/projects/lashkar/" target="_blank"><font color="#009933">https://developer.berlios.de/projects/lashkar/</font></a>&nbsp;&nbsp; 基于ogre<br /><br />只整理一些较大的在架构实现上值得借鉴的游戏，更多右下参看100 of the Best Legal Free Full Version Games You Can Download Online<br /><br />3、社区<br /><a href="http://www.devmaster.net/">http://www.devmaster.net/</a><br /><a href="http://freegamer.blogspot.com/">http://freegamer.blogspot.com/</a><br /><a href="http://www.gamedev.net">http://www.gamedev.net</a><br /><a href="http://www.replays.net">http://www.replays.net</a><br /><br />4、参考资料<br /><a href="http://en.wikipedia.org/wiki/List_of_game_engines">http://en.wikipedia.org/wiki/List_of_game_engines</a><br /><a href="http://membres.lycos.fr/frochet/3d_engine_list.htm">http://membres.lycos.fr/frochet/3d_engine_list.htm</a><br />http://www.cnblogs.com/cyberchen-net/archive/2007/03/04/663597.html<br /><br />100 of the Best Legal Free Full Version Games You Can Download Online<br /><br />http://games.slashdot.org/article.pl?sid=07/04/06/1638232 <img src ="http://www.cppblog.com/makiv/aggbug/198426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2013-03-14 18:43 <a href="http://www.cppblog.com/makiv/archive/2013/03/14/198426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>游戏编程技术点总结</title><link>http://www.cppblog.com/makiv/archive/2013/02/22/197987.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Thu, 21 Feb 2013 16:30:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2013/02/22/197987.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/197987.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2013/02/22/197987.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/197987.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/197987.html</trackback:ping><description><![CDATA[鼠标点击位置，角色移动同步：<a href="http://www.cnblogs.com/cnas3/archive/2011/05/28/2061028.html">http://www.cnblogs.com/cnas3/archive/2011/05/28/2061028.html</a>&nbsp;<br />键盘操作，角色移动同步：<a href="http://www.cnblogs.com/cnas3/archive/2011/08/20/2147390.html">http://www.cnblogs.com/cnas3/archive/2011/08/20/2147390.html</a><br /><a href="http://blog.csdn.net/haoel/article/details/1948051/">http://blog.csdn.net/haoel/article/details/1948051/</a><br /><a href="http://www.cnblogs.com/Ripper-Y/archive/2012/05/15/2501930.html">http://www.cnblogs.com/Ripper-Y/archive/2012/05/15/2501930.html</a><br /><br />运行时的安全检查：<a href="http://www.hackbase.com/lib/2006-01-07/13755.html">http://www.hackbase.com/lib/2006-01-07/13755.html</a><br />C++迭代器特性：<a href="http://hi.baidu.com/nicker2010/item/9fe2e7e4d25a8a058c3ea8eb">http://hi.baidu.com/nicker2010/item/9fe2e7e4d25a8a058c3ea8eb</a><br /><br />进程线程函数win和linux对照：<a href="http://blog.chinaunix.net/uid-20321537-id-1966824.html">http://blog.chinaunix.net/uid-20321537-id-1966824.html</a><br /><br /><a href="http://www.doc88.com/p-749828182012.html">http://www.doc88.com/p-749828182012.html</a><br /><br />IOCP,EPoll区别和描述。网络游戏服务器端一些注意事项<br /><a href="http://hi.baidu.com/freeknight/item/9c56aa1749853a701109b55f">http://hi.baidu.com/freeknight/item/9c56aa1749853a701109b55f</a><br /><br /><strong><font color="#ffffee"><span style="color: red">小谈网络游戏同步</span></font></strong><br /><a href="http://dev.gameres.com/Program/Abstract/DeadReckoning.htm">http://dev.gameres.com/Program/Abstract/DeadReckoning.htm</a><br />网络游戏服务器设计：同步 npc智能<br /><a href="http://www.cnblogs.com/kex1n/archive/2012/09/17/2688980.html">http://www.cnblogs.com/kex1n/archive/2012/09/17/2688980.html</a><br />网络游戏三大技术难题<br /><a href="http://home.donews.com/donews/forum/35/2006-04/05/601475.html">http://home.donews.com/donews/forum/35/2006-04/05/601475.html</a><br />网络游戏服务器开发<br /><a href="http://www.cnblogs.com/steven_oyj/category/248183.html">http://www.cnblogs.com/steven_oyj/category/248183.html</a> <br />进程从加载到执行的方式：<a href="http://bbs.chinaunix.net/thread-1251403-1-1.html">http://bbs.chinaunix.net/thread-1251403-1-1.html</a><br /><br /><a id="viewpost1_TitleUrl" href="http://www.cppblog.com/API/archive/2013/03/16/198479.html"><font color="#000000">内存池实现 (思路)</font></a> <a href="http://www.cppblog.com/API/archive/2013/03/16/198479.html">http://www.cppblog.com/API/archive/2013/03/16/198479.html</a><br />
<div class="postTitle"><a id="viewpost1_TitleUrl" href="http://www.cppblog.com/API/archive/2013/03/16/198483.html"><font color="#000000">内存池的实现(一)</font></a> <a href="http://www.cppblog.com/API/archive/2013/03/16/198483.html">http://www.cppblog.com/API/archive/2013/03/16/198483.html</a><br /><br /><a href="http://kb.cnblogs.com/page/105657/">自旋锁spinlock剖析与改进</a>&nbsp;<a href="http://kb.cnblogs.com/page/105657/">http://kb.cnblogs.com/page/105657/</a>&nbsp;<br /><u><font color="#0066cc">Poll机制分析（转韦东山）</font></u>&nbsp;<a href="http://blog.csdn.net/frankyzhangc/article/details/6692210">http://blog.csdn.net/frankyzhangc/article/details/6692210</a><br /><br /><a href="http://kb.cnblogs.com/page/110366/">理解Linux系统负荷</a>&nbsp;<a href="http://kb.cnblogs.com/page/110366/">http://kb.cnblogs.com/page/110366/</a><br />实战只能指针&nbsp;<a href="http://www.cnblogs.com/jisujun/archive/2010/05/19/1776899.html">http://www.cnblogs.com/jisujun/archive/2010/05/19/1776899.html</a><br />游戏中内嵌web浏览器内核<a href="http://blog.csdn.net/zhangyilan/article/details/3063100">http://blog.csdn.net/zhangyilan/article/details/3063100</a><br />游戏中内嵌flashUI <a href="http://blog.csdn.net/zhangyilan/article/details/3200639">http://blog.csdn.net/zhangyilan/article/details/3200639</a></div><img src ="http://www.cppblog.com/makiv/aggbug/197987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2013-02-22 00:30 <a href="http://www.cppblog.com/makiv/archive/2013/02/22/197987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>#pragma 详解</title><link>http://www.cppblog.com/makiv/archive/2011/04/19/144572.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Tue, 19 Apr 2011 10:15:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2011/04/19/144572.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/144572.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2011/04/19/144572.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/144572.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/144572.html</trackback:ping><description><![CDATA[在编写程序的时候，我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 一 &nbsp; message参数。 &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 它能够在编译信息输出窗口中输出相应的信息，这对于源代码信息的控制是非常重要的。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 其使用方法为： &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; message("消息文本") &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 &nbsp; &nbsp; &nbsp; <br>&nbsp; 当我们在程序中定义了许多宏来控制源代码版本的时候，我们自己有可能都会忘记有没有正确的设置这些宏，此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定义了_X86这个宏可以用下面的方法 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #ifdef &nbsp; _X86 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; message("_X86 &nbsp; macro &nbsp; activated!") &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #endif &nbsp; &nbsp; &nbsp; <br>&nbsp; 当我们定义了_X86这个宏以后，应用程序在编译时就会在编译输出窗口里显示"_X86 &nbsp; macro &nbsp; activated!"。我们就不会因为不记得自己定义的一些特定的宏而抓耳挠腮了。 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; 二 &nbsp; 另一个使用得比较多的#pragma参数是co<wbr>de_seg。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 格式如： &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; co<wbr>de_seg( &nbsp; [ &nbsp; [ &nbsp; { &nbsp; push &nbsp; | &nbsp; pop}, &nbsp; ] &nbsp; [ &nbsp; identifier, &nbsp; ] &nbsp; ] &nbsp; [ &nbsp; "segment-name" &nbsp; [, &nbsp; "segment-class" &nbsp; ] &nbsp; ) &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 该指令用来指定函数在.obj文件中存放的节，观察obj文件可以使用VC自带的dumpbin命令行程序，函数在.obj文件中默认的存放节为.text节。如果co<wbr>de_seg没有带参数的话,则函数存放在.text节中。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; push &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (可选参数)将一个记录放到内部编译器的堆栈中，可选参数可以为一个标识符或者节名； &nbsp; <br>&nbsp; &nbsp; &nbsp; pop &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (可选参数)将一个记录从堆栈顶端弹出，该记录可以为一个标识符或者节名； &nbsp; <br>&nbsp; &nbsp; &nbsp; identifier &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (可选参数)当使用push指令时，为压入堆栈的记录指派的一个标识符，当该标识符被删除的时候和其相关的堆栈中的记录 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 将被弹出堆栈； &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; segment-name &nbsp; &nbsp; (可选参数)表示函数存放的节名。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 例如: &nbsp; <br>&nbsp; //默认情况下，函数被存放在.text节中 &nbsp; <br>&nbsp; void &nbsp; func1() &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; stored &nbsp; in &nbsp; .text &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; //将函数存放在.my_da<wbr>ta1节中 &nbsp; <br>&nbsp; #pragma &nbsp; co<wbr>de_seg(".my_da<wbr>ta1") &nbsp; <br>&nbsp; void &nbsp; func2() &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; stored &nbsp; in &nbsp; my_da<wbr>ta1 &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; //r1为标识符，将函数放入.my_da<wbr>ta2节中 &nbsp; <br>&nbsp; #pragma &nbsp; co<wbr>de_seg(push, &nbsp; r1, &nbsp; ".my_da<wbr>ta2") &nbsp; <br>&nbsp; void &nbsp; func3() &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; stored &nbsp; in &nbsp; my_da<wbr>ta2 &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; int &nbsp; main() &nbsp; { &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 三 &nbsp; #pragma &nbsp; on<wbr>ce(比较常用） &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 这是一个比较常用的指令，只要在头文件的最开始加入这条指令就能够保证头文件被编译一次 &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 四 &nbsp; #pragma &nbsp; hdrstop表示预编译头文件到此为止，后面的头文件不进行预编译 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; BCB可以预编译头文件以加快链接的速度，但如果所有头文件都进行预编译又可能占太多磁盘空间，所以使用这个选项排除一些头文件。有时单元之间有依赖关系，比如单元A依赖单元B，所以单元B要先于单元A编译。你可以用#pragma &nbsp; startup指定编译优先级，如果使用了#pragma &nbsp; package(smart_init)，BCB就会根据优先级的大小先后编译。 &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 五 &nbsp; #pragma &nbsp; warning指令 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 该指令允许有选择性的修改编译器的警告消息的行为，指令格式如下: &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; warning-specifier &nbsp; : &nbsp; warning-number-list &nbsp; [; &nbsp; warning-specifier &nbsp; : &nbsp; warning-number-list...] &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; push[ &nbsp; ,n &nbsp; ] &nbsp; ) &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; pop &nbsp; ) &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 主要用到的警告表示有如下几个: &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; on<wbr>ce： &nbsp; &nbsp; &nbsp; 只显示一次(警告/错误等)消息 &nbsp; <br>&nbsp; &nbsp; &nbsp; default：重置编译器的警告行为到默认状态 &nbsp; <br>&nbsp; &nbsp; &nbsp; 1,2,3,4：四个警告级别 &nbsp; <br>&nbsp; &nbsp; &nbsp; disable：禁止指定的警告信息 &nbsp; <br>&nbsp; &nbsp; &nbsp; error： &nbsp; &nbsp; 将指定的警告信息作为错误报告 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 如果大家对上面的解释不是很理解,可以参考一下下面的例子及说明 &nbsp; <br>&nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; disable &nbsp; : &nbsp; 4507 &nbsp; 34; &nbsp; on<wbr>ce &nbsp; : &nbsp; 4385; &nbsp; error &nbsp; : &nbsp; 164 &nbsp; ) &nbsp; &nbsp; &nbsp; <br>&nbsp; 等价于： &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning(disable:4507 &nbsp; 34) &nbsp; &nbsp; // &nbsp; 不显示4507和34号警告信息 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning(on<wbr>ce:4385) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; 4385号警告信息仅报告一次 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning(error:164) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; 把164号警告信息作为一个错误。 &nbsp; &nbsp; &nbsp; <br>&nbsp; 同时这个pragma &nbsp; warning &nbsp; 也支持如下格式： &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; push &nbsp; [ &nbsp; ,n &nbsp; ] &nbsp; ) &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; pop &nbsp; ) &nbsp; &nbsp; &nbsp; <br>&nbsp; 这里n代表一个警告等级(1---4)。 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; push &nbsp; )保存所有警告信息的现有的警告状态。 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; push, &nbsp; n)保存所有警告信息的现有的警告状态，并且把全局警告等级设定为n。 &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; pop &nbsp; )向栈中弹出最后一个警告信息，在入栈和出栈之间所作的一切改动取消。 &nbsp; <br>&nbsp; 例如： &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; push &nbsp; ) &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; disable &nbsp; : &nbsp; 4705 &nbsp; ) &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; disable &nbsp; : &nbsp; 4706 &nbsp; ) &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; disable &nbsp; : &nbsp; 4707 &nbsp; ) &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; warning( &nbsp; pop &nbsp; ) &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 在这段代码的最后，重新保存所有的警告信息(包括4705，4706和4707) &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 在使用标准C++进行编程的时候经常会得到很多的警告信息，而这些警告信息都是不必要的提示，所以我们可以使用#pragma &nbsp; warning(disable:4786)来禁止该类型的警告。在vc中使用ADO的时候也会得到不必要的警告信息，这个时候我们可以通过#pragma &nbsp; warning(disable:4146)来消除该类型的警告信息。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 六 &nbsp; pragma &nbsp; comment(...) &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 该指令的格式为： &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; #pragma &nbsp; comment( &nbsp; "comment-type" &nbsp; [, &nbsp; commentstring] &nbsp; ) &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; 该指令将一个注释记录放入一个对象文件或可执行文件中， &nbsp; <br>&nbsp; &nbsp; &nbsp; comment-type(注释类型)：可以指定为五种预定义的标识符的其中一种，五种预定义的标识符为: &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; compiler：将编译器的版本号和名称放入目标文件中,本条注释记录将被编译器忽略。如果你为该记录类型提供了commentstring参数，编 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 译器将会产生一个警告。例如:#pragma &nbsp; comment( &nbsp; compiler &nbsp; ) &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exestr: &nbsp; &nbsp; &nbsp; 将commentstring参数放入目标文件中，在链接的时候这个字符串将被放入到可执行文件中，当操作系统加载可执行文件的时候 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ，该参数字符串不会被加载到内存中。但是，该字符串可以被dumpbin之类的程序查找出并打印出来，你可以用这个标识符将版 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 本号码之类的信息嵌入到可执行文件中! &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lib: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 这是一个非常常用的关键字，用来将一个库文件链接到目标文件中常用的lib关键字，可以帮我们连入一个库文件。 &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 例如: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #pragma &nbsp; comment(lib, &nbsp; "user32.lib") &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 该指令用来将user32.lib库文件加入到本工程中。 &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; linker: &nbsp; &nbsp; &nbsp; 将一个链接选项放入目标文件中，你可以使用这个指令来代替由命令行传入的或者在开发环境中设置的链接选项，你可以指 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 定/include选项来强制包含某个对象，例如: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #pragma &nbsp; comment(linker, &nbsp; "/include:__mySymbol") &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 你可以在程序中设置下列链接选项 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /DEFAULTLIB &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /EXPORT &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /INCLUDE &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /MERGE &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /SECTION &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 这些选项在这里就不一一说明了，详细信息请看msdn! &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 将一般的注释信息放入目标文件中commentstring参数包含注释的文本信息，这个注释记录将被链接器忽略 &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 例如: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #pragma &nbsp; comment( &nbsp; user, &nbsp; "Compiled &nbsp; on &nbsp; " &nbsp; __DATE__ &nbsp; " &nbsp; at &nbsp; " &nbsp; __TIME__ &nbsp; )
<img src ="http://www.cppblog.com/makiv/aggbug/144572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2011-04-19 18:15 <a href="http://www.cppblog.com/makiv/archive/2011/04/19/144572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>^M: bad interpreter: No such file </title><link>http://www.cppblog.com/makiv/archive/2011/04/15/144317.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Fri, 15 Apr 2011 09:16:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2011/04/15/144317.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/144317.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2011/04/15/144317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/144317.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/144317.html</trackback:ping><description><![CDATA[<p>windows写的脚本程序，在传到linux下，添加执行权限，执行后会提示： /usr/bin/python^M: bad interpreter: 没有那个文件或目录<br><br>分析：<br>这是不同系统编码格式引起的：在windows系统中编辑的.sh .py文件可能有不可见字符，所以在Linux系统下执行会报以上异常信息。一般是因为windows行结尾和linux行结尾标识不同造成的。<br><br>解决：<br>1）在windows下转换： <br>利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换，再放到Linux中执行。转换方式如下（UltraEdit）：File--&gt;Conversions--&gt;DOS-&gt;UNIX即可。 <br>2）linux下直接替换：<br>sed -i 's/^M//g'&nbsp;&nbsp;filename&nbsp;（注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m)<br>3）也可在Linux中转换： <br>首先要确保文件有可执行权限 <br>#sh&gt;chmod a+x filename <br><br>然后修改文件格式 <br>#sh&gt;vi filename <br><br>利用如下命令查看文件格式 <br>:set ff 或 :set fileformat <br><br>可以看到如下信息 <br>fileformat=dos 或 fileformat=unix <br><br>利用如下命令修改文件格式 <br>:set ff=unix 或 :set fileformat=unix <br><br>:wq (存盘退出) <br><br>最后再执行文件 <br>#sh&gt;./filename <br><br>
<script type=text/javascript><!--
google_ad_client = "pub-1076724771190722";
/* JE个人博客468x60 */
google_ad_slot = "5506163105";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript>
</script>
<script src="http://pagead2.googlesyndication.com/pagead/js/r20110406/r20110412/show_ads_impl.js"></script>
<script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script>
<script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"></script>
<script>google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);</script>
</p>
<img src ="http://www.cppblog.com/makiv/aggbug/144317.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2011-04-15 17:16 <a href="http://www.cppblog.com/makiv/archive/2011/04/15/144317.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VS远程调试</title><link>http://www.cppblog.com/makiv/archive/2011/04/12/144035.html</link><dc:creator>chib</dc:creator><author>chib</author><pubDate>Tue, 12 Apr 2011 07:03:00 GMT</pubDate><guid>http://www.cppblog.com/makiv/archive/2011/04/12/144035.html</guid><wfw:comment>http://www.cppblog.com/makiv/comments/144035.html</wfw:comment><comments>http://www.cppblog.com/makiv/archive/2011/04/12/144035.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/makiv/comments/commentRss/144035.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/makiv/services/trackbacks/144035.html</trackback:ping><description><![CDATA[<div class=Section0 style="LAYOUT-GRID:  15.6pt none">
<h3 style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt"><span style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">VS<font face=宋体>远程调试</font></span><span style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></h3>
<p class=p0 style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 21.25pt; TEXT-INDENT: -21.25pt"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">1.&nbsp;</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">查找<font face="Times New Roman">msvcmon.exe</font><font face=宋体>：</font><font face="Times New Roman">VS2003</font><font face=宋体>的</font><font face="Times New Roman">msvcmon</font><font face=宋体>位于</font><font face="Times New Roman">Microsoft&nbsp;Visual&nbsp;Studio&nbsp;.NET&nbsp;2003\Common7\Packages\Debugger</font><font face=宋体>下，直接复制目录</font><font face="Times New Roman">debugger</font><font face=宋体>到远程服务器下。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=p0 style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 21.25pt; TEXT-INDENT: -21.25pt"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">2.&nbsp;</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">进入远程服务器的<font face="Times New Roman">debugger</font><font face=宋体>目录下，做个批处理文件内容为：</font><font face="Times New Roman">msvcmon&nbsp;&nbsp;-tcpip&nbsp;&nbsp;-anyuser&nbsp;&nbsp;&nbsp;-timeout&nbsp;&nbsp;-1</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=p0 style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 21.25pt; TEXT-INDENT: -21.25pt"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">3.&nbsp;</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">运行批处理</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=p0 style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 21.25pt; TEXT-INDENT: -21.25pt"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">4.&nbsp;</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">保证需要调试的进程已经启动，同时在执行文件下有相应的<font face="Times New Roman">pdb</font><font face=宋体>文件</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=p0 style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 21.25pt; TEXT-INDENT: -21.25pt"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">5.&nbsp;</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">本地<font face="Times New Roman">VS</font><font face=宋体>中，工具</font><font face="Times New Roman">-&gt;</font><font face=宋体>调试进程</font><font face="Times New Roman">-&gt;</font><font face=宋体>传输，选择&nbsp;</font><font face="Times New Roman">TCP/IP</font><font face=宋体>，名称中输入远程服务器</font><font face="Times New Roman">IP</font><font face=宋体>回车</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=p0 style="MARGIN-TOP: 0pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 21.25pt; TEXT-INDENT: -21.25pt"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-spacerun: 'yes'">6.&nbsp;</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">在进程列表中选择你要调试的进程，附加后，就可以正常调试远程进程了。</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
</div>
<!--endfragment-->
<img src ="http://www.cppblog.com/makiv/aggbug/144035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/makiv/" target="_blank">chib</a> 2011-04-12 15:03 <a href="http://www.cppblog.com/makiv/archive/2011/04/12/144035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>