<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT Farmer的博客 &#187; 开发</title>
	<atom:link href="http://www.it-farmer.com/category/%e5%bc%80%e5%8f%91/feed" rel="self" type="application/rss+xml" />
	<link>http://www.it-farmer.com</link>
	<description>关于软件, 技术, 生活的点滴记录</description>
	<lastBuildDate>Sun, 25 Jul 2010 08:50:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>活灵活现用Git</title>
		<link>http://www.it-farmer.com/%e6%b4%bb%e7%81%b5%e6%b4%bb%e7%8e%b0%e7%94%a8git.html</link>
		<comments>http://www.it-farmer.com/%e6%b4%bb%e7%81%b5%e6%b4%bb%e7%8e%b0%e7%94%a8git.html#comments</comments>
		<pubDate>Sun, 25 Jul 2010 01:11:34 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=492</guid>
		<description><![CDATA[Git是一个分布式的版本控制工具，本篇文章从介绍Git开始，重点在于介绍Git的基本命令和使用技巧，让你尝试使用Git的同时，体验到原来一个版本控制工具可以对开发产生如此之多的影响，文章分为两部分，第一部分介绍Git的一些常用命令，其中穿插介绍Git的基本概念和原理，第二篇重点介绍Git的使用技巧，最后会在Git Hub上创建一个开源项目开启你的Git实战之旅 Git是什么 Git在Wikipedia上的定义：它是一个免费的、分布式的版本控制工具，或是一个强调了速度快的源代码管理工具。Git最初被Linus Torvalds开发出来用于管理Linux内核的开发。每一个Git的工作目录都是一个完全独立的代码库，并拥有完整的历史记录和版本追踪能力，不依赖于网络和中心服务器。 Git的出现减轻了许多开发者和开源项目对于管理分支代码的压力，由于对分支的良好控制，更鼓励开发者对自己感兴趣的项目做出贡献。其实许多开源项目包括Linux kernel, Samba, X.org Server, Ruby on Rails，都已经过渡到使用Git作为自己的版本控制工具。对于我们这些喜欢写代码的开发者嘛，有两点最大的好处，我们可以在任何地点（在上班的地铁上）提交自己的代码和查看代码版本；我们可以开许许多多个分支来实践我们的想法，而合并这些分支的开销几乎可以忽略不计。 Git 1+1 现在进入本篇文章真正的主题，介绍一下Git的基本命令和操作，会从Git的版本库的初始化，基本操作和独有的常用命令三部分着手，让大家能够开始使用Git。 Git通常有两种方式来进行初始化: •git clone: 这是较为简单的一种初始化方式，当你已经有一个远程的Git版本库，只需要在本地克隆一份，例如&#8217;git clone git://github.com/someone/some_project.git some_project&#8217;命令就是将&#8217;git://github.com/someone/some_project.git&#8217;这个URL地址的远程版 本库完全克隆到本地some_project目录下面 •git init和git remote：这种方式稍微复杂一些，当你本地创建了一个工作目录，你可以进入这个目录，使用&#8217;git init&#8217;命令进行初始化，Git以后就会对该目录下的文件进行版本控制，这时候如果你需要将它放到远程服务器上，可以在远程服务器上创建一个目录，并把 可访问的URL记录下来，此时你就可以利用&#8217;git remote add&#8217;命令来增加一个远程服务器端，例如&#8217;git remote add origin git://github.com/someone/another_project.git&#8217;这条命令就会增加URL地址为&#8217;git: //github.com/someone/another_project.git&#8217;，名称为origin的远程服务器，以后提交代码的时候只需要使用 origin别名即可 现在我们有了本地和远程的版本库，让我们来试着用用Git的基本命令吧： •git pull：从其他的版本库（既可以是远程的也可以是本地的）将代码更新到本地，例如：&#8217;git pull origin master&#8217;就是将origin这个版本库的代码更新到本地的master主枝，该功能类似于SVN的update •git add：是将当前更改或者新增的文件加入到Git的索引中，加入到Git的索引中就表示记入了版本历史中，这也是提交之前所需要执行的一步，例如&#8217;git add app/model/user.rb&#8217;就会增加app/model/user.rb文件到Git的索引中 •git rm：从当前的工作空间中和索引中删除文件，例如&#8217;git rm app/model/user.rb&#8217; •git commit：提交当前工作空间的修改内容，类似于SVN的commit命令，例如&#8217;git commit -m [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/%e6%b4%bb%e7%81%b5%e6%b4%bb%e7%8e%b0%e7%94%a8git.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>皮皮书屋</title>
		<link>http://www.it-farmer.com/%e7%9a%ae%e7%9a%ae%e4%b9%a6%e5%b1%8b.html</link>
		<comments>http://www.it-farmer.com/%e7%9a%ae%e7%9a%ae%e4%b9%a6%e5%b1%8b.html#comments</comments>
		<pubDate>Sat, 27 Feb 2010 06:32:09 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[皮皮书屋]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=454</guid>
		<description><![CDATA[http://www.ppurl.com/ 不错的电子书网站，很有特色，注册用户的Captcha是一段程序，问你输出是什么。 #include int n[]={0&#215;48, 0&#215;65,0x6C,0x6C, 0x6F,0x2C,0&#215;20, 0&#215;77,0x6F,0&#215;72, 0x6C,0&#215;64,0&#215;21, 0x0A,0&#215;00},*m=n; main(n){ if(putchar (*m)!=&#8217;\0&#8242;) main(m++); } 答案是Hello World!。 Related Posts:Mozilla embeding exampleWine 1.0 released设计模式2: Abstract Factory模式设计模式3: Strategy模式error C3163: ‘_vsnprintf’: attributes inconsistent with previous declaration in Visual C++ 2008Powered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/%e7%9a%ae%e7%9a%ae%e4%b9%a6%e5%b1%8b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HowTos: 在Debian 5 (Lenny) 上编译firefox</title>
		<link>http://www.it-farmer.com/how-to-compile-firefox-or-iceweasel-on-debian-5-lenny.html</link>
		<comments>http://www.it-farmer.com/how-to-compile-firefox-or-iceweasel-on-debian-5-lenny.html#comments</comments>
		<pubDate>Mon, 22 Feb 2010 05:49:38 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=415</guid>
		<description><![CDATA[刚安装了Debian 5,试一下编译Firefox. 有如下要点：(注意命令在root下执行）. 基本上参看官方指南，　https://developer.mozilla.org/en/Linux_Build_Prerequisites，　但也有些不同． 1. 安装编译工具 sudo apt-get install build-essential 2. 安装firefox的依赖库： sudo apt-get install iceweasel iceweasel是firefox在Debian的发布版．我运行sudo apt-get install firefox，会报找不到包的错误 sudo apt-get install libdbus-glib-1-dev curl apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13 在编译中遇到个奇怪的错误 &#8220;Your compiler does not follow the C++ specification for temporary object destruction order.&#8221; 但删除configure重新生成后，错误消失了．我估计是autoconf的问题．　 Related Posts:Compile Praat on linuxBuild [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/how-to-compile-firefox-or-iceweasel-on-debian-5-lenny.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to install a new disk on Solaris</title>
		<link>http://www.it-farmer.com/how-to-install-a-new-disk-on-solaris.html</link>
		<comments>http://www.it-farmer.com/how-to-install-a-new-disk-on-solaris.html#comments</comments>
		<pubDate>Fri, 19 Feb 2010 03:22:46 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=446</guid>
		<description><![CDATA[Just a bookmark: http://blogs.sun.com/harcey/entry/solaris_x86_vmware_adding_a 1. Add a VMware Disk to a Solaris image * Shut down the VM * Edit the VMware configuration: Select Virtual Machines -> Settings * Add a new hard disk device * start the Solaris image 2. After boot, check disk: # ls /dev/rdsk/*s0 /dev/rdsk/c0t0d0s0 /dev/rdsk/c1t0d0s0 Have Solaris check for new [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/how-to-install-a-new-disk-on-solaris.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZT: When and How to Use Dispose and Finalize in C#</title>
		<link>http://www.it-farmer.com/zt-when-and-how-to-use-dispose-and-finalize-in-c.html</link>
		<comments>http://www.it-farmer.com/zt-when-and-how-to-use-dispose-and-finalize-in-c.html#comments</comments>
		<pubDate>Sun, 18 Oct 2009 11:43:49 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[Dispose]]></category>
		<category><![CDATA[Finalize]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=335</guid>
		<description><![CDATA[  When and How to Use Dispose and Finalize in C# Although the .NET framework frees managed memory and resources transparently, it&#8217;s not as adept at freeing unmanaged resources; you have to help it out by implementing the Dispose and Finalize patterns in your code. by Joydip Kanjilal hen the .NET framework instantiates an object, [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/zt-when-and-how-to-use-dispose-and-finalize-in-c.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用VS2008编译Google Chromium</title>
		<link>http://www.it-farmer.com/compile-google-chromium.html</link>
		<comments>http://www.it-farmer.com/compile-google-chromium.html#comments</comments>
		<pubDate>Sat, 03 Oct 2009 02:50:46 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[VS2008]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=295</guid>
		<description><![CDATA[Google chromium的源代码是去年这个时候开源的，一直想去看看它的代码，编译一个自己的版本。 以前它需要用VC++2005 SP1编译。值得一提的是，VC++ 2005的SP1非常来装，我折腾了好几次都没有装上（等很久，安装进度条就是不动） 不过，最近注意到可以用VS2008编译了，以下是找到的相关资料： Google Chrome 源码 SVN 地址：http://src.chromium.org/svn。包含有 Chrome、Gears、Webkit、GCC 等源码以 及编译依赖工具。Chrome 浏览器项目的源码，位于目录 http://src.chromium.org/svn/trunk/src/chrome/ 1. 下载代码 Create a directory to hold your source code. This example assumes c:\chromiumtrunk, but other names are fine.  Important: Make sure the full directory path has no spaces. In a shell window, execute the following commands: cd c:\chromiumtrunk [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/compile-google-chromium.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Workflow Foundation学习笔记 (1)</title>
		<link>http://www.it-farmer.com/windows-workflow-foundation-learning.html</link>
		<comments>http://www.it-farmer.com/windows-workflow-foundation-learning.html#comments</comments>
		<pubDate>Tue, 22 Sep 2009 14:46:51 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[.net 3.0]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=289</guid>
		<description><![CDATA[Workflow Foundation是.Net 3.0+中比较重要的一大功能,值得学习。而学习一项新技术的最快捷办法就是多看看一些例子和文章。 1. 相关文章 关于Workflow的网络文章是非常多的，这里列出一些作为开始的入手点。 微软VP的博客：http://weblogs.asp.net/scottgu/archive/2006/08/31/Windows-Workflow-Foundation.aspx MDSN: http://msdn.microsoft.com/en-us/magazine/cc163504.aspx Workflow主站: http://msdn.microsoft.com/en-us/netframework/aa663328.aspx ２. 例子 同时我也在看SDK中自带的Workflow例子，这里把我看过的例子做一个简单的介绍。这些例子都可以从微软的网站上免费下载得到。　http://www.microsoft.com/downloads/details.aspx?FamilyID=22b58b6c-8f98-40d0-880d-c3339c5da01e&#38;displaylang=en Technologies\BasicWorkflows\SimpleSequentialWorkflow： 这是一个简单的Sequential Workflow，里面有一个IfElse Actitivy，他有两条分支，根据一个条件的判断选择其中的一条分支。 Technologies\BasicWorkflows\SimpleStateMachineWorkflow: 状态机工作流的简单例子。 Technologies\BasicWorkflows\WorkflowWithParameters 跟第一个例子很像，只不过多了一下演示如何传递一个数据到Workflow。基本上Workflow实例的公开属性是可以在Workflow运行之前配置的。 3. 待续问题  如何用程序创建workflow?  (Create workflow programmatically?)  什么是xoml? Related Posts:Wix介绍Windows Vista SDKWindows Core Audio APIsHyper-VVista的奇怪问题Powered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/windows-workflow-foundation-learning.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何获得对话框的ID呢？</title>
		<link>http://www.it-farmer.com/%e5%a6%82%e4%bd%95%e8%8e%b7%e5%be%97%e5%af%b9%e8%af%9d%e6%a1%86%e7%9a%84id%e5%91%a2%ef%bc%9f.html</link>
		<comments>http://www.it-farmer.com/%e5%a6%82%e4%bd%95%e8%8e%b7%e5%be%97%e5%af%b9%e8%af%9d%e6%a1%86%e7%9a%84id%e5%91%a2%ef%bc%9f.html#comments</comments>
		<pubDate>Sun, 20 Sep 2009 15:12:09 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[VC++]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=271</guid>
		<description><![CDATA[我们都知道在VC++中，每个对话框都有一个ID. 在实际应用中，这个ID被用来弹出该对话框。 具体如何做，可以参看MSDN上关于DialogBox的介绍 http://msdn.microsoft.com/en-us/library/ms645452(VS.85).aspx GetDlgCtrlID可以很容易的从ID得到一个对话框的控件句柄。 那么这里的问题是如果已知一个对话框的窗口句柄，我们如何能够的得到一个对话框的ID (资源编辑器中的)? 目前尚未搜索到答案。 Related Posts:Wix介绍Windows Workflow Foundation学习笔记 (1)Windows Core Audio APIs如何查询XML数据如何使用.Net Trace APIPowered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/%e5%a6%82%e4%bd%95%e8%8e%b7%e5%be%97%e5%af%b9%e8%af%9d%e6%a1%86%e7%9a%84id%e5%91%a2%ef%bc%9f.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Googe站点搜索乱码的解决方案</title>
		<link>http://www.it-farmer.com/googe-sitesearch-chines.html</link>
		<comments>http://www.it-farmer.com/googe-sitesearch-chines.html#comments</comments>
		<pubDate>Fri, 18 Sep 2009 15:07:50 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[sitesearch]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=263</guid>
		<description><![CDATA[我在本博克中使用了google sitesearch搜索框，但是搜索中文的时候却出现了乱码。 经过一番研究，只需要修改搜索表单代码如下即可。 注意encoding方式选择utf-8 input name=&#8221;ie&#8221; type=&#8221;hidden&#8221; value=&#8221;utf-8&#8243; input name=&#8221;oe&#8221; type=&#8221;hidden&#8221; value=&#8221;utf-8&#8243; Related Posts:计算博客链接的价码突破关键字检测的奇特方法Wine 1.0 released网上听音乐的好去处Bug Tracking Software recommendations?Powered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/googe-sitesearch-chines.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compile Praat on linux</title>
		<link>http://www.it-farmer.com/compile-praat-on-linux.html</link>
		<comments>http://www.it-farmer.com/compile-praat-on-linux.html#comments</comments>
		<pubDate>Sun, 17 Aug 2008 10:12:11 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[praat]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=252</guid>
		<description><![CDATA[Praat is a wonderful speech analysis tool. The process to compile praat on ubuntu is below: 1. Install ubuntu 2. Download the source code 3. Install the dependencies:     sudo apt-get install build-essential 4. download and install alsa-lib-1.0 5. install xm/xm.h     sudo apt-get install lesstif2-dev Then follow the praat steps to buid   A tip for [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/compile-praat-on-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>调试Debug版和Release版的C++程序不一致</title>
		<link>http://www.it-farmer.com/debug-and-release-version-differenc.html</link>
		<comments>http://www.it-farmer.com/debug-and-release-version-differenc.html#comments</comments>
		<pubDate>Mon, 12 May 2008 02:51:14 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[VC++]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/?p=147</guid>
		<description><![CDATA[有时候写的程序会出现在Debug版和Release版运行不一样的情况。 有几种情况： 1. 涉及到浮点数的转换。 程序中如果大量使用double和float的相互转换，很容易出现Debug版和Release版的结果不一致。原因是因为Debug版使用的浮点转换方法不太一样。 2. 内存没有初始化。在Debug版里面，未初始化的内存会被Runtime自动给一个初值，但Release版就不一定了。这时候甚至出现程序在调试器内和调试器外结果都不一致的情形。 如果你遇到了Debug版和Release版结果不一致的情况，不妨检查一下上面的问题。]]></description>
		<wfw:commentRss>http://www.it-farmer.com/debug-and-release-version-differenc.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hyper-V</title>
		<link>http://www.it-farmer.com/what-is-hyper-v.html</link>
		<comments>http://www.it-farmer.com/what-is-hyper-v.html#comments</comments>
		<pubDate>Thu, 27 Mar 2008 14:05:46 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[hyper-v]]></category>
		<category><![CDATA[wmware]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/what-is-hyper-v.html</guid>
		<description><![CDATA[微软的Windows 2008 Server将推出Hyper-V技术，这个技术将允许在同一台Windows 2008服务器上运行多个虚拟的操作系统，可以预见这项技术将成为VMware的强大的竞争对手。 看起来这像是把前几年收购的Virtual PC技术做进操作系统了。 虚拟化技术能够使用虚拟机技术在一台物理服务器上运行多个操作系统。这种技术被广泛地认为是一种颠覆性的技术。随着企业谋求减少成本和整合数据中心以及IT环境中的硬件，虚拟化技术正在变得越来越重要。微软原计划把Hyper-V技术作为Windows Server 2008的一部分发布，后来推迟了这个计划。现在，微软计划在Windows Server 2008发布之后的6个月内发布Hyper-V技术。 Hyper-V利用了针对英特尔和AMD处理器进行虚拟化优化的优势，要与虚拟化技术的领先厂商VMware展开竞争。VMware目前已经在市场上出售虚拟化技术了。这种管理技术能够提供交叉平台的支持，因此，同一台服务器能够多种版本的不同的操作系统，如Windows和Linux等。 更多参看  http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/25/hyper-v-terminology.aspx http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx Related Posts:BT下载目录如何在脚本语言里检查当前的CPU类型苹果采摘的去处计算博客链接的价码Linux上安装OpenVPNPowered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/what-is-hyper-v.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于如何调试堆的溢出</title>
		<link>http://www.it-farmer.com/how-to-debug-heap-overflow.html</link>
		<comments>http://www.it-farmer.com/how-to-debug-heap-overflow.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 09:18:34 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[Heap]]></category>
		<category><![CDATA[堆溢出]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/how-to-debug-heap-overflow.html</guid>
		<description><![CDATA[在写C++程序的时候，很有可能会遇到堆的溢出的问题，比如下程序： char *p = new char[10]; p[11] = 0; 上面的代码很可能将堆的内部数据结构写坏。VC＋＋的运行时会检测到堆的错误，会在程序退出时给出错误提示。 如果你有很大的一个程序，那么如何定位具体是那一行代码导致堆的溢出呢。 这时候可以使用的工具是AppVerifier 将程序挂上AppVerifier和Debugger,  错误写堆的代码运行时会触发调试断点。 Related Posts:推荐一个短小精悍的PDF Viewer网上赚钱的办法Windows Workflow Foundation学习笔记 (1)Wix介绍Mozilla embeding examplePowered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/how-to-debug-heap-overflow.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何编译主函数为WinMain的C++程序</title>
		<link>http://www.it-farmer.com/compile-vc-code-with-winmain.html</link>
		<comments>http://www.it-farmer.com/compile-vc-code-with-winmain.html#comments</comments>
		<pubDate>Tue, 04 Mar 2008 00:26:00 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[main]]></category>
		<category><![CDATA[VC++]]></category>
		<category><![CDATA[WinMain]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/compile-vc-code-with-winmain.html</guid>
		<description><![CDATA[最近有老友问这么个问题, 有一堆C++程序，主函数是WinMain，如何建一个VC++工程编译。 这个问题其实比较容易，有个概念解释一下就行了。 Windows对命令行和图形界面的程序是有一定区分的，在编译得到的EXE中有相应的标志指示这个EXE是命令行窗口程序还是图形界面程序。体现在C++开发工具上，命令行程序以main函数为程序入口点，而图形界面程序以WinMain程序作为入口。 Related Posts:关于VC++的wchar_t类型VC++中使用ActiveX Automation Server的方法用VS2008制作安装程序门头沟戒台寺Firefox在Linux下的中文字体显示问题Powered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/compile-vc-code-with-winmain.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VC++中使用ActiveX Automation Server的方法</title>
		<link>http://www.it-farmer.com/how-to-use-activex-automation-in-vc.html</link>
		<comments>http://www.it-farmer.com/how-to-use-activex-automation-in-vc.html#comments</comments>
		<pubDate>Fri, 22 Feb 2008 12:57:07 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[ATL]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[VC++]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/how-to-use-activex-automation-in-vc.html</guid>
		<description><![CDATA[随着.Net越来越成熟，ActiveX已经渐渐成为昨日黄花了．最近，项目需要调用一个ActiveX,　一时间需要回忆在VC++中如何调用它了．以下是本人的了解： VC++自带的ActiveX Wrapper工具，它可以将一个ActiveX Server包装成一个MFC Class供使用，比较简单． 直接调用COM, 就是直接调用CoCreateInstance了，得到相关的接口，一个一个调用过去了． 如果要处理ActiveX事件，就复杂一点．用ATL的话可以这么做： a. 实现一个类继承并实现IDispatch接口 b. 创建ActiveX对象后，调用AtlAdvise通知该对象 hr = AtlAdvise(m_spFooObject, GetUnknown(), DIID_DWebBrowserEvents2, &#38;m_dwCookie); c. 在IDispatch::Invoke方法里面处理对象事件． Related Posts:Ubuntu：如何安装开发工具关于VC++的wchar_t类型Linux创建快捷方式如何编译主函数为WinMain的C++程序令人头疼的MSVCR80.dllPowered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/how-to-use-activex-automation-in-vc.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>令人头疼的MSVCR80.dll</title>
		<link>http://www.it-farmer.com/this-application-has-failed-to-start-because-msvcr80dll-was-not-found.html</link>
		<comments>http://www.it-farmer.com/this-application-has-failed-to-start-because-msvcr80dll-was-not-found.html#comments</comments>
		<pubDate>Mon, 18 Feb 2008 12:15:59 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/this-application-has-failed-to-start-because-msvcr80dll-was-not-found.html</guid>
		<description><![CDATA[在部署VS2005开发的程序时，常遇到的错误是 “This application has failed to start because MSVCR80.dll was not found”, 这让我十分的头疼。 在VC++ 2005以前, VC的Runtime DLL从当前目录,系统system32目录下加载运行. 然而VC++ 2005 改变了VC++ Runtime DLL的加载方式, VC Runtime DLL必须通过Manifest加载. Manifest可以是外部的文件,比如foo.exe对应的manifest是foo.exe.manifest. 不过,更方便的方式是Manifest嵌入到dll或者exe中. 嵌入Manifest可以使用mt.exe这个工具, 比如有个foo.manifest如下 &#60;?xml version=&#8217;1.0&#8242; encoding=&#8217;UTF-8&#8242; standalone=&#8217;yes&#8217;?&#62; &#60;assembly xmlns=&#8217;urn:schemas-microsoft-com:asm.v1&#8242; manifestVersion=&#8217;1.0&#8242;&#62; &#60;dependency&#62; &#60;dependentAssembly&#62; &#60;assemblyIdentity type=&#8217;win32&#8242; name=&#8217;Microsoft.VC80.CRT&#8217; version=&#8217;8.0.50727.762&#8242; processorArchitecture=&#8217;x86&#8242; publicKeyToken=&#8217;1fc8b3b9a1e18e3b&#8217; /&#62; &#60;/dependentAssembly&#62; &#60;/dependency&#62; &#60;/assembly&#62; 嵌入到exe中 mt.exe -manifest foo.exe-outputresource:foo.exe;1 嵌入到dll中 mt.exe -manifest [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/this-application-has-failed-to-start-because-msvcr80dll-was-not-found.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CVS学习笔记(1)</title>
		<link>http://www.it-farmer.com/how-to-use-cvs.html</link>
		<comments>http://www.it-farmer.com/how-to-use-cvs.html#comments</comments>
		<pubDate>Sun, 17 Feb 2008 06:33:23 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[cvs]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/how-to-use-cvs.html</guid>
		<description><![CDATA[CVS是古老而传统的版本控制软件。虽然SVN有后来居上之势，但CVS还是被很多大型软件项目使用，所以还是有必要熟悉一下它的基本用法： CVS Login and Checkout 以Mozilla为例，  可以checkout一个文件 cvs checkout -r FIREFOX_2_0_RELEASE mozilla/client.mk cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r FIREFOX_2_0_0_12_RELEASE mozilla/client.mk 更新本地文件 cvs update 如果不小心修改了本地文件，需要取回Server上的文件，这么做： rm foo.cpp cvs update foo.cpp 这里有个教程还行，http://www.cs.umb.edu/~srevilak/cvs.html#update Related Posts:XULRunner的编译Build firefox 3 trunk on ubuntu常用Linux命令HowTos: 在Debian 5 (Lenny) 上编译firefoxUbuntu很不错Powered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/how-to-use-cvs.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用VS2008制作安装程序</title>
		<link>http://www.it-farmer.com/how-to-make-installer-with-visual-studio.html</link>
		<comments>http://www.it-farmer.com/how-to-make-installer-with-visual-studio.html#comments</comments>
		<pubDate>Thu, 14 Feb 2008 12:04:23 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Installer]]></category>
		<category><![CDATA[VS2008]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/how-to-make-installer-with-visual-studio.html</guid>
		<description><![CDATA[&#160; 我最近用VS2008开发C#程序, 程序制作完毕,需要做安装程序了.考虑到不是所有的用户都安装了.Net Framework, 有必要制作一个安装程序，我希望它能够只能检测到机器上是否安装了.Net Framework，如果没有，下载安装。 经过一番调研，我发现这个功能已经被VS2008支持。只需要创建一个Installer Project，添加相关的安装文件，VS会自动检测到程序运行需要的Runtime. 最后编译该Installer，得到安装包文件(一个MSI和一个setup.exe). 运行Setup.exe后，它将自动检测安装所需要的Runtime. 美中不足的是，安装包必须是两个文件，而不是一个，有点郁闷！ Related Posts:门头沟戒台寺门头沟妙峰山兴寿草莓采摘Open Source Project: DebianFirefox在Linux下的中文字体显示问题Powered by Contextual Related Posts]]></description>
		<wfw:commentRss>http://www.it-farmer.com/how-to-make-installer-with-visual-studio.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XULRunner的编译</title>
		<link>http://www.it-farmer.com/xulrunner%e7%9a%84%e7%bc%96%e8%af%91.html</link>
		<comments>http://www.it-farmer.com/xulrunner%e7%9a%84%e7%bc%96%e8%af%91.html#comments</comments>
		<pubDate>Sat, 09 Feb 2008 07:02:28 +0000</pubDate>
		<dc:creator>ITFramer</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[VS2005]]></category>
		<category><![CDATA[xulrunner]]></category>
		<category><![CDATA[编译]]></category>

		<guid isPermaLink="false">http://www.it-farmer.com/xulrunner%e7%9a%84%e7%bc%96%e8%af%91.html</guid>
		<description><![CDATA[这两天我在试图用VS2005编译XULRunner,  经过数十个小时的尝试,终于功夫不负有心人,成功! 简要步骤如下: 1. 安装VS2005, mozilla-build tools (细节可以看http://developer.mozilla.org/en/docs/Build_Documentation) 2. 取得XULRunner的源代码 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r FIREFOX_2_0_0_12_RELEASE mozilla/client.mk cd mozilla make -f client.mk checkout MOZ_CO_PROJECT=browser,xulrunner 不要奇怪，xulrunner和firefox browser是在一个源代码树下的． 3. 创建.mozconfig mk_add_options MOZ_CO_PROJECT=xulrunner mk_add_options MOZ_OBJDIR=@topsrcdir@/obj-xulrunner-debug ac_add_options &#8211;enable-application=xulrunner ac_add_options &#8211;disable-optimize ac_add_options &#8211;enable-debug ac_add_options &#8211;disable-static ac_add_options &#8211;enable-shared #Uncomment the following line if you don&#8217;t want to build JavaXPCOM: ac_add_options &#8211;disable-javaxpcom 4. 开始编译  make [...]]]></description>
		<wfw:commentRss>http://www.it-farmer.com/xulrunner%e7%9a%84%e7%bc%96%e8%af%91.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
