﻿<?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++博客-再别流年的技术实验室-随笔分类-mySDL_GameEngine</title><link>http://www.cppblog.com/lf426/category/6743.html</link><description>Game Design Using C++ and SDL</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 13:17:20 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 13:17:20 GMT</pubDate><ttl>60</ttl><item><title>MixSoundClass</title><link>http://www.cppblog.com/lf426/archive/2008/04/20/47642.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Sat, 19 Apr 2008 17:49:00 GMT</pubDate><guid>http://www.cppblog.com/lf426/archive/2008/04/20/47642.html</guid><wfw:comment>http://www.cppblog.com/lf426/comments/47642.html</wfw:comment><comments>http://www.cppblog.com/lf426/archive/2008/04/20/47642.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lf426/comments/commentRss/47642.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lf426/services/trackbacks/47642.html</trackback:ping><description><![CDATA[<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"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Laboratory&nbsp;of&nbsp;ZaiBieLiunNian<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.cppblog.com/lf426/</span><span style="COLOR: #008000"><br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">FileName:&nbsp;MixSoundClass.hpp</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#ifndef&nbsp;MIX_SOUND_CLASS_HPP<br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;MIX_SOUND_CLASS_HPP</span><span style="COLOR: #000000"><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SDL/SDL.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SDL/SDL_mixer.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;BaseMixSound<br>{<br></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;MixNUM;<br></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;BaseMixSound();<br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">BaseMixSound();<br>};<br><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;EffectSound:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;BaseMixSound<br>{<br></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;Mix_Chunk</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;sound;<br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;EffectSound(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;sound_fileName);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">EffectSound();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;play()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">;<br>};<br><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MusicSound:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;BaseMixSound<br>{<br></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;Mix_Music</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;music;<br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;MusicSound(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;music_fileName);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">MusicSound();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;play()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;stop()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">;<br>};<br><br></span><span style="COLOR: #0000ff">#endif</span></div>
<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"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Laboratory&nbsp;of&nbsp;ZaiBieLiunNian<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.cppblog.com/lf426/</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MixSoundClass.hpp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">*******************************<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">class&nbsp;BaseMixSound</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;BaseMixSound::MixNUM&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><br>BaseMixSound::BaseMixSound()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;MixNUM&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;Mix_OpenAudio(&nbsp;</span><span style="COLOR: #000000">22050</span><span style="COLOR: #000000">,&nbsp;MIX_DEFAULT_FORMAT,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">4096</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cerr&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Mix_Open&nbsp;ERROR</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;MixNUM</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br>}<br><br>BaseMixSound::</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">BaseMixSound()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;MixNUM</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;MixNUM&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mix_CloseAudio();<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">*******************************<br><br><br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">*******************************<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">class&nbsp;EffectSound</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>EffectSound::EffectSound(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;sound_fileName)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;sound&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Mix_LoadWAV(sound_fileName.c_str());<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;sound&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cerr&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;sound_fileName&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;:&nbsp;load&nbsp;failed!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br>EffectSound::</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">EffectSound()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;Mix_FreeChunk(sound);<br>}<br><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;EffectSound::play()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"><br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;Mix_PlayChannel(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;sound,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cerr&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Mix_PlayChannel()&nbsp;ERROR</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">*******************************<br><br><br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">*******************************<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">class&nbsp;MusicSound</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>MusicSound::MusicSound(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;music_fileName)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;music&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Mix_LoadMUS(music_fileName.c_str());<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;&nbsp;music&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cerr&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;music_fileName&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;:&nbsp;load&nbsp;failed!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br>MusicSound::</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">MusicSound()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;Mix_FreeMusic(music);<br>}<br><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MusicSound::play()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"><br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;Mix_PlayingMusic()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;Mix_PlayMusic(&nbsp;music,&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cerr&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Mix_PlayMusic()&nbsp;ERROR</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;Mix_PausedMusic()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mix_ResumeMusic();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mix_PauseMusic();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;MusicSound::stop()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"><br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;Mix_HaltMusic();<br>}<br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">***************************************</span></div>
<br>lib:&nbsp;SDL.lib, SDLmain.lib<br>&nbsp;&nbsp;&nbsp;&nbsp; SDL_mixer.lib<br><br>dll:&nbsp;SDL.dll<br>&nbsp;&nbsp;&nbsp;&nbsp; libogg-0.dll, libvorbis-0.dll, libvorbisfile-3.dll, SDL_mixer.dll, smpeg.dll<br><br>last update: 2008-04-20
<img src ="http://www.cppblog.com/lf426/aggbug/47642.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lf426/" target="_blank">lf426</a> 2008-04-20 01:49 <a href="http://www.cppblog.com/lf426/archive/2008/04/20/47642.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ButtonClass</title><link>http://www.cppblog.com/lf426/archive/2008/04/15/47156.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Tue, 15 Apr 2008 13:29:00 GMT</pubDate><guid>http://www.cppblog.com/lf426/archive/2008/04/15/47156.html</guid><wfw:comment>http://www.cppblog.com/lf426/comments/47156.html</wfw:comment><comments>http://www.cppblog.com/lf426/archive/2008/04/15/47156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lf426/comments/commentRss/47156.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lf426/services/trackbacks/47156.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: //UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)//Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com//Laboratory&nbsp;of&nbsp;ZaiBieLiunNian//http://www.cppblog.com/lf426///FileName:&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/lf426/archive/2008/04/15/47156.html'>阅读全文</a><img src ="http://www.cppblog.com/lf426/aggbug/47156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lf426/" target="_blank">lf426</a> 2008-04-15 21:29 <a href="http://www.cppblog.com/lf426/archive/2008/04/15/47156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>StringData</title><link>http://www.cppblog.com/lf426/archive/2008/04/14/47040.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Mon, 14 Apr 2008 06:11:00 GMT</pubDate><guid>http://www.cppblog.com/lf426/archive/2008/04/14/47040.html</guid><wfw:comment>http://www.cppblog.com/lf426/comments/47040.html</wfw:comment><comments>http://www.cppblog.com/lf426/archive/2008/04/14/47040.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/lf426/comments/commentRss/47040.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lf426/services/trackbacks/47040.html</trackback:ping><description><![CDATA[<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"><span style="COLOR: #000000">#ifndef&nbsp;STRING_DATA_HPP<br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;STRING_DATA_HPP</span><span style="COLOR: #000000"><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">clocale</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">vector</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GNU/libintl.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;StringData<br>{<br></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;std::vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;data;<br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br>&nbsp;&nbsp;&nbsp;&nbsp;StringData(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;type);<br>&nbsp;&nbsp;&nbsp;&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;[](</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;n)&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">;<br>};<br><br></span><span style="COLOR: #0000ff">#endif</span></div>
<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"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">StringData.hpp</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br>StringData::StringData(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;type)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;setlocale(LC_ALL,&nbsp;</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;bindtextdomain(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">StringData</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./po</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;textdomain(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">StringData</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;type&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">0,&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.push_back(gettext(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">1</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.push_back(gettext(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/dot.gif"></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;type&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type2</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">0,&nbsp;other</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.push_back(gettext(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">1</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.push_back(gettext(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/dot.gif"></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;type&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">type3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">0</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.push_back(gettext(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">1</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.push_back(gettext(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/dot.gif"></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">0</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.push_back(gettext(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">NULL</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br>std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;StringData::</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;[](</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;n)&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"><br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;n&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;data.size()&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&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>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;data[n];<br>}</span></div>
<br>lib: libintl.lib<br><br>dll: libiconv2.dll, libintl3.dll<br><br>last update: 2008-04-14 
<img src ="http://www.cppblog.com/lf426/aggbug/47040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lf426/" target="_blank">lf426</a> 2008-04-14 14:11 <a href="http://www.cppblog.com/lf426/archive/2008/04/14/47040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SurfaceClass</title><link>http://www.cppblog.com/lf426/archive/2008/04/14/47038.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Mon, 14 Apr 2008 06:03:00 GMT</pubDate><guid>http://www.cppblog.com/lf426/archive/2008/04/14/47038.html</guid><wfw:comment>http://www.cppblog.com/lf426/comments/47038.html</wfw:comment><comments>http://www.cppblog.com/lf426/archive/2008/04/14/47038.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lf426/comments/commentRss/47038.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lf426/services/trackbacks/47038.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Widows version://UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)//Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com//Laboratory&nbsp;of&nbsp;ZaiBieLiunNian//http://www.cppblog.com/lf42...&nbsp;&nbsp;<a href='http://www.cppblog.com/lf426/archive/2008/04/14/47038.html'>阅读全文</a><img src ="http://www.cppblog.com/lf426/aggbug/47038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lf426/" target="_blank">lf426</a> 2008-04-14 14:03 <a href="http://www.cppblog.com/lf426/archive/2008/04/14/47038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SDL_render_Chinese</title><link>http://www.cppblog.com/lf426/archive/2008/04/14/47033.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Mon, 14 Apr 2008 05:24:00 GMT</pubDate><guid>http://www.cppblog.com/lf426/archive/2008/04/14/47033.html</guid><wfw:comment>http://www.cppblog.com/lf426/comments/47033.html</wfw:comment><comments>http://www.cppblog.com/lf426/archive/2008/04/14/47033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lf426/comments/commentRss/47033.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lf426/services/trackbacks/47033.html</trackback:ping><description><![CDATA[<span style="COLOR: red">Windows only. Linux needn't.</span><br><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"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Laboratory&nbsp;of&nbsp;ZaiBieLiunNian<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.cppblog.com/lf426/</span><span style="COLOR: #008000"><br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">FileName:&nbsp;SDL_render_Chinese.h<br></span><span style="COLOR: #008000">//For Windows only<br></span><span style="COLOR: #000000"><br>#ifndef&nbsp;RENDER_CHINESE_H<br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;RENDER_CHINESE_H</span><span style="COLOR: #000000"><br><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gb2312_to_Unicode.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SDL/SDL_ttf.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br>SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;myTTF_RenderString_Blended(TTF_Font</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;font,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;SDL_Color&nbsp;fg);<br>SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;myTTF_RenderString_Solid(TTF_Font</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;font,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;SDL_Color&nbsp;fg);<br>SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;myTTF_RenderString_Shaded(TTF_Font</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;font,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;SDL_Color&nbsp;fg,&nbsp;SDL_Color&nbsp;bg);<br><br></span><span style="COLOR: #0000ff">#endif</span></div>
<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"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Laboratory&nbsp;of&nbsp;ZaiBieLiunNian<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.cppblog.com/lf426/<br></span><span style="COLOR: #008000"><br>//FileName: SDL_render_Chinese.cpp<br>//For Windows only<br></span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SDL_render_Chinese.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br>SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;myTTF_RenderString_Blended(TTF_Font</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;font,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;SDL_Color&nbsp;fg)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;textbuf;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Get&nbsp;Unicode</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;std::vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Uint16</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;unicodeUnit;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;getUnicode(str,&nbsp;unicodeUnit)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&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>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;arraySize&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;unicodeUnit.size();<br>&nbsp;&nbsp;&nbsp;&nbsp;Uint16</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;perOne&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Uint16[arraySize</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;arraySize;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perOne[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;unicodeUnit[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;perOne[arraySize]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Render&nbsp;the&nbsp;new&nbsp;text</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;textbuf&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;TTF_RenderUNICODE_Blended(font,&nbsp;perOne,&nbsp;fg);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Free&nbsp;the&nbsp;text&nbsp;buffer&nbsp;and&nbsp;return</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;[]&nbsp;perOne;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;textbuf;<br>}<br><br>SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;myTTF_RenderString_Solid(TTF_Font</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;font,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;SDL_Color&nbsp;fg)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;textbuf;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Get&nbsp;Unicode</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;std::vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Uint16</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;unicodeUnit;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;getUnicode(str,&nbsp;unicodeUnit)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&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>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;arraySize&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;unicodeUnit.size();<br>&nbsp;&nbsp;&nbsp;&nbsp;Uint16</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;perOne&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Uint16[arraySize</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;arraySize;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perOne[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;unicodeUnit[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;perOne[arraySize]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Render&nbsp;the&nbsp;new&nbsp;text</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;textbuf&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;TTF_RenderUNICODE_Solid(font,&nbsp;perOne,&nbsp;fg);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Free&nbsp;the&nbsp;text&nbsp;buffer&nbsp;and&nbsp;return</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;[]&nbsp;perOne;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;textbuf;<br>}<br><br>SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;myTTF_RenderString_Shaded(TTF_Font</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;font,&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;SDL_Color&nbsp;fg,&nbsp;SDL_Color&nbsp;bg)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;SDL_Surface</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;textbuf;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Get&nbsp;Unicode</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;std::vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Uint16</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;unicodeUnit;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;getUnicode(str,&nbsp;unicodeUnit)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&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>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;arraySize&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;unicodeUnit.size();<br>&nbsp;&nbsp;&nbsp;&nbsp;Uint16</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;perOne&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Uint16[arraySize</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;arraySize;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perOne[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;unicodeUnit[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;perOne[arraySize]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Render&nbsp;the&nbsp;new&nbsp;text</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;textbuf&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;TTF_RenderUNICODE_Shaded(font,&nbsp;perOne,&nbsp;fg,&nbsp;bg);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Free&nbsp;the&nbsp;text&nbsp;buffer&nbsp;and&nbsp;return</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;[]&nbsp;perOne;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;textbuf;<br>}</span></div>
<br>lib: iconv.lib<br>&nbsp;&nbsp;&nbsp;&nbsp; SDL_ttf.lib<br>&nbsp;&nbsp;&nbsp;&nbsp; SDL.lib, SDLmain.lib<br><br>dll: iconv.dll<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SDL_ttf.dll, libfreetype-6.dll, zlib1.dll<br>&nbsp;&nbsp;&nbsp;&nbsp; SDL.dll<br><br>last update: 2008-05-12
<img src ="http://www.cppblog.com/lf426/aggbug/47033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lf426/" target="_blank">lf426</a> 2008-04-14 13:24 <a href="http://www.cppblog.com/lf426/archive/2008/04/14/47033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gb2312_to_Unicode</title><link>http://www.cppblog.com/lf426/archive/2008/04/14/47032.html</link><dc:creator>lf426</dc:creator><author>lf426</author><pubDate>Mon, 14 Apr 2008 05:23:00 GMT</pubDate><guid>http://www.cppblog.com/lf426/archive/2008/04/14/47032.html</guid><wfw:comment>http://www.cppblog.com/lf426/comments/47032.html</wfw:comment><comments>http://www.cppblog.com/lf426/archive/2008/04/14/47032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lf426/comments/commentRss/47032.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lf426/services/trackbacks/47032.html</trackback:ping><description><![CDATA[<span style="COLOR: red">Windows only. Linux needn't.<br></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"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Laboratory&nbsp;of&nbsp;ZaiBieLiunNian<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.cppblog.com/lf426/</span><span style="COLOR: #008000"><br><br></span><span style="COLOR: #008000">//FileName: gb2312_to_Unicode.h<br>//For Windows only</span><span style="COLOR: #008000"></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#<span style="COLOR: #0000ff">ifndef&nbsp;</span>GB2312_TO_UNICODE_H_<br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;GB2312_TO_UNICODE_H_</span><span style="COLOR: #000000"><br><br>#<span style="COLOR: #0000ff">include</span>&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#<span style="COLOR: #0000ff">include</span>&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">vector</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#<span style="COLOR: #0000ff">include&nbsp;</span></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GNU/iconv.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">if&nbsp;not&nbsp;include&nbsp;"SDL/SDL.h"</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">#<span style="COLOR: #0000ff">ifndef&nbsp;</span>_SDL_H<br><span style="COLOR: #0000ff">typedef&nbsp;unsigned</span>&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Uint16;<br></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;getUnicode(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;std::vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Uint16</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">&nbsp;unicodeVectorArray);<br><br></span><span style="COLOR: #0000ff">#endif</span></div>
<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"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">UVi&nbsp;Soft&nbsp;(&nbsp;2008&nbsp;)<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Long&nbsp;Fei&nbsp;(&nbsp;lf426&nbsp;),&nbsp;E-mail:&nbsp;zbln426@163.com<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Laboratory&nbsp;of&nbsp;ZaiBieLiunNian<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.cppblog.com/lf426/<br></span><span style="COLOR: #008000"><br>//FileName: gb2312_to_Unicode.cpp<br>//For Windows only<br></span><span style="COLOR: #000000"><br>#<span style="COLOR: #0000ff">include&nbsp;</span></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gb2312_to_Unicode.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;myUTF8_to_UNICODE(Uint16</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;unicode,&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;utf8,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len);<br><br></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;getUnicode(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;str,&nbsp;std::vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Uint16</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">&nbsp;unicodeVectorArray)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;CHAR_SIZE&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">256</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">GB2312&nbsp;src</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;src&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)(str.c_str());<br>&nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;src_len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strlen((</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)src);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Unicode&nbsp;dst&nbsp;to&nbsp;get</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;dst[CHAR_SIZE]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">};<br>&nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;dst_len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(dst);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">iconv&nbsp;arg</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;src;<br>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dst;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;iconv_t&nbsp;cd;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">GB2312&nbsp;to&nbsp;UTF-8</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;cd&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;iconv_open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">UTF-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">GB2312</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;((iconv_t)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;cd){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">conversion</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;iconv(cd,&nbsp;(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">**</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">src_len,&nbsp;(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">**</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">dst_len);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">UTF-8&nbsp;to&nbsp;Unicode</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;utf8Len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strlen((</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)dst);<br>&nbsp;&nbsp;&nbsp;&nbsp;Uint16&nbsp;unicodeData[CHAR_SIZE]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">};<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;unicodeLen&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;myUTF8_to_UNICODE(unicodeData,&nbsp;dst,&nbsp;utf8Len);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;unicodeLen;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unicodeVectorArray.push_back(unicodeData[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;iconv_close(cd);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br>}<br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;myUTF8_to_UNICODE(Uint16</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;unicode,&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;utf8,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;length;<br>&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;t&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;utf8;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;length&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(utf8&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;t&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;len){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">one&nbsp;byte.ASCII&nbsp;as&nbsp;a,&nbsp;b,&nbsp;c,&nbsp;1,&nbsp;2,&nbsp;3<img src="http://www.cppblog.com/Images/dot.gif">&nbsp;ect</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)&nbsp;utf8&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x7f</span><span style="COLOR: #000000">&nbsp;)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">expand&nbsp;with&nbsp;0s.</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">unicode</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">utf8</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">2&nbsp;byte.</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)&nbsp;utf8&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0xdf</span><span style="COLOR: #000000">&nbsp;)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">unicode</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;((</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)&nbsp;utf8&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x1f</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;((</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)&nbsp;(utf8&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">))&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x3f</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utf8&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">3&nbsp;byte.Chinese&nbsp;may&nbsp;use&nbsp;3&nbsp;byte.</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">unicode</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;((</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)&nbsp;utf8&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x0f</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)&nbsp;(utf8&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x3f</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)&nbsp;(utf8&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x3f</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utf8&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">unicode&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;(length);<br>}</span></div>
<br>lib: iconv.lib<br>dll: iconv.dll<br><br>last update: 2008-05-12
<img src ="http://www.cppblog.com/lf426/aggbug/47032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lf426/" target="_blank">lf426</a> 2008-04-14 13:23 <a href="http://www.cppblog.com/lf426/archive/2008/04/14/47032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>