<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>大坡3D软件开发 - Direct3D</title><link>http://blog.csdn.net/caimouse/category/49656.aspx</link><description>《深入浅出DIRECT3D》，本书是以自己实践为主，一步一步带你进入D3D开发。</description><dc:language>zh-CN</dc:language><lastUpdateTime>Tue, 22 Apr 2008 21:18:49 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(93)GetSaveFileName函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/25/1967130.aspx</link><pubDate>Tue, 25 Dec 2007 21:25:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/25/1967130.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1967130.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/25/1967130.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1967130.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1967130</trackback:ping><description>前面介绍了怎么样打开选择文件读取的对话框，当你设计的软件需要让用户选择保存时，就需要让用户去选择自己合适的文件名称来保存。那么就需要使用到保存文件对话框，也就是API函数GetSaveFileName。下面就来演示怎么样使用这个API函数。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1967130.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(92)GetOpenFileName函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/21/1958035.aspx</link><pubDate>Fri, 21 Dec 2007 22:24:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/21/1958035.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1958035.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/21/1958035.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1958035.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1958035</trackback:ping><description>当用户想选择打开以前保存的文件时，就需要使用到选择文件对话框。其实在Windows的API里已经有这样完美的对话，只需要简单的调用，就可以使用了，而不需要写一大堆其它的代码。下面就来演示一下怎么使用文件选择对话框。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1958035.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(91)GetProcessMemoryInfo函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/18/1947575.aspx</link><pubDate>Tue, 18 Dec 2007 21:01:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/18/1947575.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1947575.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/18/1947575.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1947575.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1947575</trackback:ping><description>当大家打开Windows任务管理器时，就会看到每个进程使用内存的分布情况，往往会发现有一些进程占用大量的内存，在这种情况也是一种异常情况，可以作为是否恶意软件的标志之一。下面就来使用API函数GetProcessMemoryInfo来获取内存的使用情况。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1947575.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(90)GetGlyphOutline函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/16/1941978.aspx</link><pubDate>Sun, 16 Dec 2007 14:54:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/16/1941978.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1941978.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/16/1941978.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1941978.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1941978</trackback:ping><description>中西文化的差异，导致在电子信息里处理也大不相同，在英文里只需要26个字母就可以显示所有文章了，而在中文里需要最基本的字符就有2000多个。对于一些在嵌入式软件里要显示的字符，那么就得手动去构造所有图形，这是一个比较大的工作量，如果让每个厂家都去完成这个任务，显然是不可能的。面对着大量嵌入式用户的需求，那么就需要解决中文字模的图形问题。毕竟大家经常使用Windows，最先想到的，肯定是怎么样把里面的字符提取图形出来，生成自己需要的几个字库。下面就来介绍怎么样用函数GetGlyphOutline获取显示字符的图形数据。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1941978.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(89)OpenProcess函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/13/1933714.aspx</link><pubDate>Thu, 13 Dec 2007 20:34:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/13/1933714.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1933714.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/13/1933714.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1933714.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1933714</trackback:ping><description>这一年来流氓软件特别多，面对这种非常恶心的软件，让大家非常痛苦。正是在这种环境之下，众多客户需要强大查杀这种流氓软件的工具。如果让你来开发一个查杀这种病毒的软件，你会怎么做呢？当然是先把电脑里所有进程遍历出来，然后把每个进程的详细信息显示给用户，让用户决定自己那些进程可以运行，那些不可以运行。或者根据当前进程的信息，再跟根据病毒库里的特征码进行比较，就可以标识那些是可疑的病毒了。下面就来演示用函数OpenProcess怎么打开进程并获取进程的名称。
 &lt;img src ="http://blog.csdn.net/caimouse/aggbug/1933714.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(88)EnumProcesses函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/12/1931973.aspx</link><pubDate>Wed, 12 Dec 2007 20:23:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/12/1931973.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1931973.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/12/1931973.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1931973.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1931973</trackback:ping><description>当你开发的软件在用户那里运行出错了，想怎么办呢？当然是希望把出错时候的运行环境信息生成报表，然后再Email回来查看了。这里就介绍一个函数可以把当时运行环境的进程全部找到，然后可以输出每个进程的信息。当然，这个函数也可以使用到杀病毒软件里，用来查看可疑的进程信息。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1931973.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(87)CreateProcess函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/11/1930256.aspx</link><pubDate>Tue, 11 Dec 2007 21:34:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/11/1930256.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1930256.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/11/1930256.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1930256.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1930256</trackback:ping><description>人们需要处理的信息越来越复杂，往往在一个应用程序里是处理不完的，因此，就出现多个应用程序协同处理同一件事情。当然多个应用程序分开处理，也是比较容易开发，并且让应用程序复杂难度迅速降低。比如在开发一个银行的交易系统，有一个报表生成的主程序，然后还有很多小的，不同的报表生成程序。这样就需要从主程序里创建小报表程序进行运行。创建进程运行，需要使用函数CreateProcess来实现。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1930256.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(86)GetClipboardData函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/10/1928064.aspx</link><pubDate>Mon, 10 Dec 2007 20:30:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/10/1928064.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1928064.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/10/1928064.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1928064.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1928064</trackback:ping><description>前面介绍怎么样把数据放到剪贴板里面，那么又是怎么样从剪贴板里面获取数据出来呢？当然还是需要使用其它的API函数来获取剪贴板里的数据。获取剪贴板里的数据时，是不知道当前剪贴板里是否有数据的，也不知道剪贴板里的数据格式是什么。那么下面就来解决这两个问题，先使用函数IsClipboardFormatAvailable来获取剪贴板里的格式是否可以处理，接着使用函数OpenClipboard打开剪贴板，然后使用函数GetClipboardData来获取剪贴板数据。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1928064.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(85)OpenClipboard函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/09/1925509.aspx</link><pubDate>Sun, 09 Dec 2007 12:53:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/09/1925509.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1925509.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/09/1925509.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1925509.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1925509</trackback:ping><description>多个软件之间进行数据共享是非常重要的，难以想像编辑软件没有CTRL+C，CTRL+V的功能，是多么的不方便。很多的操作，就是拷贝的动作，就是为了数据共享。剪贴板共享是Windows里比较重要的功能，比如很多采集数据的软件为了方便导数据到Excel里面，就可以使用剪贴板的功能。还有即见即所得的界面导到Word里面，也可以使用剪贴板的功能。
 
&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1925509.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(84)FlushInstructionCache函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/06/1921570.aspx</link><pubDate>Thu, 06 Dec 2007 21:28:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/06/1921570.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1921570.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/06/1921570.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1921570.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1921570</trackback:ping><description>一般的程序都是在运行前已经编译好的，因此修改指令的机会比较少，但在软件的防确解里，倒是使用很多。当修改指令之后，怎么样才能让CPU去执行新的指令呢？这样就需要使用函数FlushInstructionCache来把缓存里的数据重写回主内存里去，让CPU重新加载新的指令，才能执行新的指令。下面就来学习一下使用这个函数来实现跳到一个静态函数里执行，而不是直接地调用这个函数。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1921570.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(83)GetModuleFileName函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/05/1919075.aspx</link><pubDate>Wed, 05 Dec 2007 20:23:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/05/1919075.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1919075.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/05/1919075.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1919075.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1919075</trackback:ping><description>在开发软件的过程里，经常需要把数据保存到当前执行文件路径下面，或者读取当前执行文件路径下的一些配置信息。这时就需要从当前模块里获取所在的目录路径，以便进行固定的位置操作文件。要解决这个需求，就需要调用API函数GetModuleFileName来获取模块所在的路径。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1919075.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(82)LoadLibrary函数</title><link>http://blog.csdn.net/caimouse/archive/2007/12/03/1914471.aspx</link><pubDate>Mon, 03 Dec 2007 21:27:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/12/03/1914471.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1914471.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/12/03/1914471.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1914471.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1914471</trackback:ping><description>随着软件规模的扩大，要求的功能也是越来越多，开发人员的参与也是越来越多。因此软件的功能划分，就成为了现代软件工程的重大任务，还有软件开发的并行性也越来越重要。为了解决这些问题，大家都会看到IT硬件发展非常迅速，功能也越来越复杂，但硬件中发展明显提高在于采用IC的方式来实现复杂的功能，也就是把大部份功能集成到一起，只要给出一些引脚就可以实现产品了。而软件中有没有相同于硬件中的IC呢？我想是应有的，就是动态连接库了。在Windows这座大厦里，很多基石就是动态连接库构成的。一个动态连接库就封装了特别复杂的功能，使用者不必关心它是怎么样实现的。当然，这样也可以让不同的开发者同时开发产品，提高软件开发的速度。要使用动态连接库里的函数，就需要使用LoadLibrary函数来加载动态连接库，使用函数GetProcAddress来获取功能函数的地址。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1914471.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(81)FormatMessage函数</title><link>http://blog.csdn.net/caimouse/archive/2007/11/30/1909968.aspx</link><pubDate>Fri, 30 Nov 2007 22:28:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/11/30/1909968.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1909968.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/11/30/1909968.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1909968.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1909968</trackback:ping><description>在开发软件的过程里，经常要做的工作就是调试程序，许多问题的出现，不但是逻辑的问题，还有可能是对API的不熟悉，或者某种条件下调用API会出错的。那么这些出错的原因是什么呢？通常只获取到错误码，也就是通过函数GetLastError得到。当然可以根据这个错误码去查找MSDN就可以知道出错的原因，但有时在客户那里并没有MSDN，那么就需要把调用API函数出错的信息显示出来，或者写到LOG里去。这时就需要调用函数FormatMessage把出错码详细原因显示出来。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1909968.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(79)GlobalMemoryStatusEx函数</title><link>http://blog.csdn.net/caimouse/archive/2007/11/27/1904782.aspx</link><pubDate>Tue, 27 Nov 2007 21:36:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/11/27/1904782.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1904782.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/11/27/1904782.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1904782.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1904782</trackback:ping><description>在开发软件的过程中，经常会碰到不同用户的PC系统配置不一样。比如有些用户的系统内存配置比较差，这样处理大量数据时，就不能把大量的数据读取到内存里处理了。而又有一些用户的内存比较多，或者是机器比较新，那么就可以加载大量的数据到内存里处理，这样可以随着系统的更新，软件的处理能力能大幅地提高性能。这样就需要了解系统的配置信息了，最重要的资源之一内存，就是最需要了解的，需要调用函数GlobalMemoryStatusEx来了解内存的分配情况。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1904782.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>caimouse</dc:creator><title>Windows API一日一练(78)HeapAlloc函数</title><link>http://blog.csdn.net/caimouse/archive/2007/11/26/1903393.aspx</link><pubDate>Mon, 26 Nov 2007 22:07:00 GMT</pubDate><guid>http://blog.csdn.net/caimouse/archive/2007/11/26/1903393.aspx</guid><wfw:comment>http://blog.csdn.net/caimouse/comments/1903393.aspx</wfw:comment><comments>http://blog.csdn.net/caimouse/archive/2007/11/26/1903393.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/caimouse/comments/commentRss/1903393.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1903393</trackback:ping><description>前面已经介绍两个分配内存的函数，一个全局的内存分配，一个是私有的内存分配。在进程私有的内存里分配里，又有两种分配情况，一种上基于栈式的内存分配，另一种是基于堆内存的分配。在c++里使用堆内存分配是使用HeapAlloc函数来实现的，也就是实现new操作符分配内存时会调这个函数。&lt;img src ="http://blog.csdn.net/caimouse/aggbug/1903393.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>