﻿<?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++博客-Where there is a will, there is a way-随笔分类-Graphics</title><link>http://www.cppblog.com/pxhszcn/category/5267.html</link><description>目标：C＋＋ &amp;&amp; Graphics &amp;&amp; Programming Windows </description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 14:26:12 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 14:26:12 GMT</pubDate><ttl>60</ttl><item><title>[DirectX 8.0 学习] COM 入门(1)----COM概述</title><link>http://www.cppblog.com/pxhszcn/archive/2007/11/17/36788.html</link><dc:creator>小老虎</dc:creator><author>小老虎</author><pubDate>Sat, 17 Nov 2007 06:17:00 GMT</pubDate><guid>http://www.cppblog.com/pxhszcn/archive/2007/11/17/36788.html</guid><wfw:comment>http://www.cppblog.com/pxhszcn/comments/36788.html</wfw:comment><comments>http://www.cppblog.com/pxhszcn/archive/2007/11/17/36788.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/pxhszcn/comments/commentRss/36788.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pxhszcn/services/trackbacks/36788.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: COM概述&nbsp;&nbsp;<a href='http://www.cppblog.com/pxhszcn/archive/2007/11/17/36788.html'>阅读全文</a><img src ="http://www.cppblog.com/pxhszcn/aggbug/36788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pxhszcn/" target="_blank">小老虎</a> 2007-11-17 14:17 <a href="http://www.cppblog.com/pxhszcn/archive/2007/11/17/36788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[OpenGL学习] Nehe SDK库以及基本框架代码编译中的一些问题</title><link>http://www.cppblog.com/pxhszcn/archive/2007/10/02/33342.html</link><dc:creator>小老虎</dc:creator><author>小老虎</author><pubDate>Tue, 02 Oct 2007 15:14:00 GMT</pubDate><guid>http://www.cppblog.com/pxhszcn/archive/2007/10/02/33342.html</guid><wfw:comment>http://www.cppblog.com/pxhszcn/comments/33342.html</wfw:comment><comments>http://www.cppblog.com/pxhszcn/archive/2007/10/02/33342.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/pxhszcn/comments/commentRss/33342.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/pxhszcn/services/trackbacks/33342.html</trackback:ping><description><![CDATA[<p>一直很想学习计算机图形学，今天在网上看到了Nehe的<a href="http://nehe.gamedev.net/" target=_blank>OpenGL教程</a>（<a href="http://www.owlei.com/DancingWind/" target=_blank>中文版</a>），于是想通过此迈出我学习的第一步。<br>今天首先是利用他提供的基本框架代码测试了SDK库的安装正确与否，在编译过程中遇到了以下错误：<br>1. warning C4996: '_itoa': This function or variable may be unsafe. Consider using _itoa_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS<br>2. warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS<br>3. error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [21]' to 'LPCWSTR'<br><br>经查阅资料，解决了这3个错误：<br>第1个错误，提示我使用了不安全的_itoa，考虑使用安全的_itoa_s代替之。<br>_itoa : char *_itoa(int _Value, char *_Dest, int _Radix); 将整数转换为字符串，_Radix为进制（2-36）<br>_itoa_s : errno_t _itoa_s(int _Value, char * _DstBuf, size_t _Size, int _Radix);<br><br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">例子：使用_itoa,将整数12345转换为字符串</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">12345</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_83_209_Open_Image onclick="this.style.display='none'; Codehighlighter1_83_209_Open_Text.style.display='none'; Codehighlighter1_83_209_Closed_Image.style.display='inline'; Codehighlighter1_83_209_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_83_209_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_83_209_Closed_Text.style.display='none'; Codehighlighter1_83_209_Open_Image.style.display='inline'; Codehighlighter1_83_209_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_83_209_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_83_209_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;m&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">12345</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;a[</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;_itoa(m,a,</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;a[</span><span style="COLOR: #000000">5</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">\0</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">a;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">pause</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p><br>第2个错误，提示我使用了不安全的sprintf，考虑使用安全的sprintf_s代替之。<br>sprintf : int sprintf(char * _Dest, const char * _Format, ...); 格式化字符串输出到目的字符串中<br>sprintf_s : int sprintf_s(char * _DstBuf, size_t _SizeInBytes, const char * _Format, ...);<br><br>第3个错误，MessageBox函数中的第二个参数错误。由于参数中使用到了中文，也就是UNICODE，所以系统调用的是MessageBoxW，原型为<br>WINUSERAPI int WINAPI MessageBoxW (HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);<br>所以参数2要用TEXT()进行类型转换。</p>
今天就到这里，明天继续。 
<img src ="http://www.cppblog.com/pxhszcn/aggbug/33342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/pxhszcn/" target="_blank">小老虎</a> 2007-10-02 23:14 <a href="http://www.cppblog.com/pxhszcn/archive/2007/10/02/33342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>