<?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>俞弘的网络日志</title>
	<atom:link href="http://www.eusoftware.com/hongyu/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.eusoftware.com/hongyu</link>
	<description>俞弘的程序人生, 那些与程序有关无关的</description>
	<lastBuildDate>Tue, 20 Apr 2010 12:49:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Moblin 下 GCC + GTK 开发环境的安装</title>
		<link>http://www.eusoftware.com/hongyu/?p=142</link>
		<comments>http://www.eusoftware.com/hongyu/?p=142#comments</comments>
		<pubDate>Tue, 20 Apr 2010 12:49:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[moblin]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=142</guid>
		<description><![CDATA[<p>sudo yum install gcc-c++ make libtool git gtk-doc    sudo yum install clutter-devel     我没有装 autoconf 和 automake, 不会用，也从来没打算仔细研究，只会很农民的手写 makefile。     如果程序中用到多线程 API: pthread，编译选项要加 -pthread     Moblin 对于文件名的大小写区分让我很困惑，似乎比 ubuntu 下更严格区分文件名的大小写，但你没法分别写两个只是大小写区别的文件名，这到底算区分大小写还是不区分大小写呢？昨晚折腾了三个小时，才知道有这么回事。</p>
]]></description>
			<content:encoded><![CDATA[<p>sudo yum install gcc-c++ make libtool git gtk-doc    <br />sudo yum install clutter-devel     <br />我没有装 autoconf 和 automake, 不会用，也从来没打算仔细研究，只会很农民的手写 makefile。     <br />如果程序中用到多线程 API: pthread，编译选项要加 -pthread     <br />Moblin 对于文件名的大小写区分让我很困惑，似乎比 ubuntu 下更严格区分文件名的大小写，但你没法分别写两个只是大小写区别的文件名，这到底算区分大小写还是不区分大小写呢？昨晚折腾了三个小时，才知道有这么回事。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=142</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>衣帶漸寬終不悔</title>
		<link>http://www.eusoftware.com/hongyu/?p=141</link>
		<comments>http://www.eusoftware.com/hongyu/?p=141#comments</comments>
		<pubDate>Tue, 20 Apr 2010 12:47:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[pentium]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[winxp]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=141</guid>
		<description><![CDATA[<p>因為偶然測試下發現跨平台的產品在舊奔騰 CPU + WinXP 上運行結果比純 Windows 產品速度慢不少(快速機器當然無區別，愛照顧舊機器是我的一大毛病)，花了兩天時間努力優化，代碼真是優化到不能再優化，編譯器速度優化也開到最大，完全不理會編譯結果有多肥，但運行速度雖然有提高，但結果仍然不滿意，沒有我希望的能在奔腾处理器上也能极度流暢的結果。半宿沒睡，最後死馬當活馬醫，乾脆重建 Solution，再运行編譯結果，搞定，跨平台的框架重寫的程序在奔騰上也同十年前的速度一樣的飛快了。</p>
<p>狂汗+無語！不知道這是 VS 2008 的什麼神奇功能。這兩天折騰得我是茶不思飯不想（其實昨晚鄰居請我們燒烤我也沒少吃），整夜失眠，不成人樣，好歹有個結果了，不過居然是如此解決，好沒面啊！睡覺去也。</p>
]]></description>
			<content:encoded><![CDATA[<p>因為偶然測試下發現跨平台的產品在舊奔騰 CPU + WinXP 上運行結果比純 Windows 產品速度慢不少(快速機器當然無區別，愛照顧舊機器是我的一大毛病)，花了兩天時間努力優化，代碼真是優化到不能再優化，編譯器速度優化也開到最大，完全不理會編譯結果有多肥，但運行速度雖然有提高，但結果仍然不滿意，沒有我希望的能在奔腾处理器上也能极度流暢的結果。半宿沒睡，最後死馬當活馬醫，乾脆重建 Solution，再运行編譯結果，搞定，跨平台的框架重寫的程序在奔騰上也同十年前的速度一樣的飛快了。</p>
<p>狂汗+無語！不知道這是 VS 2008 的什麼神奇功能。這兩天折騰得我是茶不思飯不想（其實昨晚鄰居請我們燒烤我也沒少吃），整夜失眠，不成人樣，好歹有個結果了，不過居然是如此解決，好沒面啊！睡覺去也。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=141</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What should be noticed while using -n and -z Bash expression</title>
		<link>http://www.eusoftware.com/hongyu/?p=135</link>
		<comments>http://www.eusoftware.com/hongyu/?p=135#comments</comments>
		<pubDate>Sun, 27 Dec 2009 18:42:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[-z -n bash]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=135</guid>
		<description><![CDATA[<p>[ -z $string ] is very easy to use. We use this expression to test whether the string is empty or undefined.
But I did meet problem when use [ -n $string ]. It seemed that it returned true anyway, no matter the $string is empty or defined or not-defined.
But when I double quoted the variable, [...]]]></description>
			<content:encoded><![CDATA[<p>[ -z $string ] is very easy to use. We use this expression to test whether the string is empty or undefined.<br />
But I did meet problem when use [ -n $string ]. It seemed that it returned true anyway, no matter the $string is empty or defined or not-defined.<br />
But when I double quoted the variable, it worked. So if we want anticipated result, we need to write it in this way: [ -n "$string" ].<br />
But for &#8220;-z&#8221;, they are all the same, no matter you write [ -z $string ] or [ -z "$string" ].</p>
<p>Anybody knows why?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=135</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crossplatform OS C++ Framework</title>
		<link>http://www.eusoftware.com/hongyu/?p=133</link>
		<comments>http://www.eusoftware.com/hongyu/?p=133#comments</comments>
		<pubDate>Tue, 03 Nov 2009 13:24:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=133</guid>
		<description><![CDATA[<p>Today, I make up my mind to spend 3 months on developing a C++ Framework to resolve cross-platform development. It should realize the source code level compatibility.</p>
<p>My current goal is to cover windows, Mac OS and Linux, if possible Iphone.</p>
<p>It should support File IO, Unicode String, Resource IO and GDI.</p>
<p>On the GDI, I will develop [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I make up my mind to spend 3 months on developing a C++ Framework to resolve cross-platform development. It should realize the source code level compatibility.</p>
<p>My current goal is to cover windows, Mac OS and Linux, if possible Iphone.</p>
<p>It should support File IO, Unicode String, Resource IO and GDI.</p>
<p>On the GDI, I will develop a GUI named zero Window which support alpha-channeled windows system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=133</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Carbide C++ can not make ARMV5 SIS</title>
		<link>http://www.eusoftware.com/hongyu/?p=132</link>
		<comments>http://www.eusoftware.com/hongyu/?p=132#comments</comments>
		<pubDate>Mon, 21 Sep 2009 10:00:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[armv]]></category>
		<category><![CDATA[Carbide]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[s60]]></category>
		<category><![CDATA[sis]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=132</guid>
		<description><![CDATA[<p>Yes. That is right. Do not bother reinstalling Carbide and S60 SDK again and again. That is just the case. I wasted all my last night on this struggle and it turned out to be that.</p>
<p>It is simple but I did not notice that Nokia even mentioned it. You need to buy a ARMV Compiler. [...]]]></description>
			<content:encoded><![CDATA[<p>Yes. That is right. Do not bother reinstalling Carbide and S60 SDK again and again. That is just the case. I wasted all my last night on this struggle and it turned out to be that.</p>
<p>It is simple but I did not notice that Nokia even mentioned it. You need to buy a ARMV Compiler. It is not free.</p>
<p>Any way, you can use GCCE to make SIS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=132</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>G10 试机样片</title>
		<link>http://www.eusoftware.com/hongyu/?p=106</link>
		<comments>http://www.eusoftware.com/hongyu/?p=106#comments</comments>
		<pubDate>Sun, 02 Aug 2009 22:41:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[摄影]]></category>
		<category><![CDATA[Canon]]></category>
		<category><![CDATA[G10]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=106</guid>
		<description><![CDATA[<p class="wp-caption-text">微距</p>
<p class="wp-caption-text">风景</p>
<p class="wp-caption-text">我的座驾</p>
<p class="wp-caption-text">花花世界1</p>
<p class="wp-caption-text">花花世界2</p>
<p class="wp-caption-text">花花世界3</p>
<p class="wp-caption-text">花花世界4</p>
<p class="wp-caption-text">花花世界5</p>
]]></description>
			<content:encoded><![CDATA[<div id="attachment_98" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1247.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1247-300x225.jpg" alt="微距" title="img_1247" width="300" height="225" class="size-medium wp-image-98" /></a><p class="wp-caption-text">微距</p></div>
<div id="attachment_97" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1237.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1237-300x225.jpg" alt="风景" title="img_1237" width="300" height="225" class="size-medium wp-image-97" /></a><p class="wp-caption-text">风景</p></div>
<div id="attachment_96" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1234.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1234-300x225.jpg" alt="我的座驾" title="img_1234" width="300" height="225" class="size-medium wp-image-96" /></a><p class="wp-caption-text">我的座驾</p></div>
<div id="attachment_112" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1413.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1413-300x225.jpg" alt="花花世界1" title="img_1413" width="300" height="225" class="size-medium wp-image-112" /></a><p class="wp-caption-text">花花世界1</p></div>
<div id="attachment_111" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1409.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1409-300x225.jpg" alt="花花世界2" title="img_1409" width="300" height="225" class="size-medium wp-image-111" /></a><p class="wp-caption-text">花花世界2</p></div>
<div id="attachment_110" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1401.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1401-300x225.jpg" alt="花花世界3" title="img_1401" width="300" height="225" class="size-medium wp-image-110" /></a><p class="wp-caption-text">花花世界3</p></div>
<div id="attachment_109" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1398.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1398-300x225.jpg" alt="花花世界4" title="img_1398" width="300" height="225" class="size-medium wp-image-109" /></a><p class="wp-caption-text">花花世界4</p></div>
<div id="attachment_108" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1393.jpg"><img src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_1393-300x225.jpg" alt="花花世界5" title="img_1393" width="300" height="225" class="size-medium wp-image-108" /></a><p class="wp-caption-text">花花世界5</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=106</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canon G10</title>
		<link>http://www.eusoftware.com/hongyu/?p=104</link>
		<comments>http://www.eusoftware.com/hongyu/?p=104#comments</comments>
		<pubDate>Sun, 02 Aug 2009 22:33:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[摄影]]></category>
		<category><![CDATA[Canon]]></category>
		<category><![CDATA[G10]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=104</guid>
		<description><![CDATA[<p>新进 Canon G10 留念照：</p>
<p class="wp-caption-text">双层转盘</p>
<p class="wp-caption-text">Canon 经典界面</p>
<p class="wp-caption-text">安全的套套</p>
<p class="wp-caption-text">曝光修正转盘</p>
]]></description>
			<content:encoded><![CDATA[<p>新进 Canon G10 留念照：</p>
<div id="attachment_101" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9672a.jpg"><img class="size-medium wp-image-101" title="img_9672a" src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9672a-300x200.jpg" alt="双层转盘" width="300" height="200" /></a><p class="wp-caption-text">双层转盘</p></div>
<div id="attachment_102" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9675a.jpg"><img class="size-medium wp-image-102" title="img_9675a" src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9675a-300x200.jpg" alt="Canon 经典界面" width="300" height="200" /></a><p class="wp-caption-text">Canon 经典界面</p></div>
<div id="attachment_103" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9680a.jpg"><img class="size-medium wp-image-103" title="img_9680a" src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9680a-300x200.jpg" alt="安全的套套" width="300" height="200" /></a><p class="wp-caption-text">安全的套套</p></div>
<div id="attachment_100" class="wp-caption alignleft" style="width: 310px"><a href="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9673.jpg"><img class="size-medium wp-image-100" title="img_9673" src="http://www.eusoftware.com/hongyu/wp-content/uploads/2009/08/img_9673-300x192.jpg" alt="曝光修正转盘" width="300" height="192" /></a><p class="wp-caption-text">曝光修正转盘</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=104</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inf 国家代码大全(Country code)</title>
		<link>http://www.eusoftware.com/hongyu/?p=95</link>
		<comments>http://www.eusoftware.com/hongyu/?p=95#comments</comments>
		<pubDate>Sat, 25 Jul 2009 09:25:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[country code]]></category>
		<category><![CDATA[Inf]]></category>
		<category><![CDATA[strings]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=95</guid>
		<description><![CDATA[<p>; 0436 is the language ID for Afrikaans
[Strings.0436]</p>
<p>; 041C is the language ID for Albanian
[Strings.041C]</p>
<p>; 1401 is the language ID for Arabic &#8211; Algeria
[Strings.1401]</p>
<p>; 3C01 is the language ID for Arabic &#8211; Bahrain
[Strings.3C01]</p>
<p>; 0C01 is the language ID for Arabic &#8211; Egypt
[Strings.0C01]</p>
<p>; 0801 is the language ID for Arabic &#8211; Iraq
[Strings.0801]</p>
<p>; 2C01 is the language [...]]]></description>
			<content:encoded><![CDATA[<p>; 0436 is the language ID for Afrikaans<br />
[Strings.0436]</p>
<p>; 041C is the language ID for Albanian<br />
[Strings.041C]</p>
<p>; 1401 is the language ID for Arabic &#8211; Algeria<br />
[Strings.1401]</p>
<p>; 3C01 is the language ID for Arabic &#8211; Bahrain<br />
[Strings.3C01]</p>
<p>; 0C01 is the language ID for Arabic &#8211; Egypt<br />
[Strings.0C01]</p>
<p>; 0801 is the language ID for Arabic &#8211; Iraq<br />
[Strings.0801]</p>
<p>; 2C01 is the language ID for Arabic &#8211; Jordan<br />
[Strings.2C01]</p>
<p>; 3401 is the language ID for Arabic &#8211; Kuwait<br />
[Strings.3401]</p>
<p>; 3001 is the language ID for Arabic &#8211; Lebanon<br />
[Strings.3001]</p>
<p>; 1001 is the language ID for Arabic &#8211; Libya<br />
[Strings.1001]</p>
<p>; 1801 is the language ID for Arabic &#8211; Morocco<br />
[Strings.1801]</p>
<p>; 2001 is the language ID for Arabic &#8211; Oman<br />
[Strings.2001]</p>
<p>; 4001 is the language ID for Arabic &#8211; Qatar<br />
[Strings.4001]</p>
<p>; 0401 is the language ID for Arabic &#8211; Saudi Arabia<br />
[Strings.0401]</p>
<p>; 2801 is the language ID for Arabic &#8211; Syria<br />
[Strings.2801]</p>
<p>; 1C01 is the language ID for Arabic &#8211; Tunisia<br />
[Strings.1C01]</p>
<p>; 3801 is the language ID for Arabic &#8211; United Arab Emirates<br />
[Strings.3801]</p>
<p>; 2401 is the language ID for Arabic &#8211; Yemen<br />
[Strings.2401]</p>
<p>; 042B is the language ID for Armenian<br />
[Strings.042B]</p>
<p>; 082C is the language ID for Azeri &#8211; Cyrillic<br />
[Strings.082C]</p>
<p>; 042C is the language ID for Azeri &#8211; Latin<br />
[Strings.042C]</p>
<p>; 042D is the language ID for Basque<br />
[Strings.042D]</p>
<p>; 0423 is the language ID for Belarusian<br />
[Strings.0423]</p>
<p>; 0402 is the language ID for Bulgarian<br />
[Strings.0402]</p>
<p>; 0403 is the language ID for Catalan<br />
[Strings.0403]</p>
<p>; 0804 is the language ID for Chinese &#8211; China<br />
[Strings.0804]</p>
<p>; 0C04 is the language ID for Chinese &#8211; Hong Kong SAR<br />
[Strings.0C04]</p>
<p>; 1404 is the language ID for Chinese &#8211; Macau SAR<br />
[Strings.1404]</p>
<p>; 1004 is the language ID for Chinese &#8211; Singapore<br />
[Strings.1004]</p>
<p>; 0404 is the language ID for Chinese &#8211; Taiwan<br />
[Strings.0404]</p>
<p>; 041A is the language ID for Croatian<br />
[Strings.041A]</p>
<p>; 0405 is the language ID for Czech<br />
[Strings.0405]</p>
<p>; 0405 is the language ID for Danish<br />
[Strings.0406]</p>
<p>; 0813 is the language ID for Dutch &#8211; Belgium<br />
[Strings.0813]</p>
<p>; 0413 is the language ID for Dutch &#8211; Netherlands<br />
[Strings.0413]</p>
<p>; 0C09 is the language ID for English &#8211; Australia<br />
[Strings.0C09]</p>
<p>; 2809 is the language ID for English &#8211; Belize<br />
[Strings.2809]</p>
<p>; 1009 is the language ID for English &#8211; Canada<br />
[Strings.1009]</p>
<p>; 2409 is the language ID for English &#8211; Caribbean<br />
[Strings.2409]</p>
<p>; 0809 is the language ID for English &#8211; United Kingdom<br />
[Strings.0809]</p>
<p>; 1809 is the language ID for English &#8211; Ireland<br />
[Strings.1809]</p>
<p>; 2009 is the language ID for English &#8211; Jamaica<br />
[Strings.2009]</p>
<p>; 1409 is the language ID for English &#8211; New Zealand<br />
[Strings.1409]</p>
<p>; 3409 is the language ID for English &#8211; Phillippines<br />
[Strings.3409]</p>
<p>; 2C09 is the language ID for English &#8211; Trinidad<br />
[Strings.2C09]</p>
<p>; 0409 is the language ID for English &#8211; United States<br />
[Strings.0409]</p>
<p>; 1C09 is the language ID for English &#8211; South Africa<br />
[Strings.1C09]</p>
<p>; 0425 is the language ID for Estonian<br />
[Strings.0425]</p>
<p>; 0438 is the language ID for Faroese<br />
[Strings.0438]</p>
<p>; 0429 is the language ID for Farsi<br />
[Strings.0429]</p>
<p>; 040B is the language ID for Finnish<br />
[Strings.040B]</p>
<p>; 0C0C is the language ID for French &#8211; Canada<br />
[Strings.0C0C]</p>
<p>; 100C is the language ID for French &#8211; Switzerland<br />
[Strings.100C]</p>
<p>; 040C is the language ID for French &#8211; France<br />
[Strings.040C]</p>
<p>; 140C is the language ID for French &#8211; Luxembourg<br />
[Strings.140C]</p>
<p>; 083C is the language ID for Gaelic &#8211; Ireland<br />
[Strings.083C]</p>
<p>; 043C is the language ID for Gaelic &#8211; Scotland<br />
[Strings.043C]</p>
<p>; 0C07 is the language ID for German &#8211; Austria<br />
[Strings.0C07]</p>
<p>; 0807 is the language ID for German &#8211; Switzerland<br />
[Strings.0807]</p>
<p>; 0407 is the language ID for German &#8211; Germany<br />
[Strings.0407]</p>
<p>; 1407 is the language ID for German &#8211; Liechtenstein<br />
[Strings.1407]</p>
<p>; 1007 is the language ID for German &#8211; Luxembourg<br />
[Strings.1007]</p>
<p>; 0408 is the language ID for Greek<br />
[Strings.0408]</p>
<p>; 040D is the language ID for Hebrew<br />
[Strings.040D]</p>
<p>; 0439 is the language ID for Hindi<br />
[Strings.0439]</p>
<p>; 040E is the language ID for Hungarian<br />
[Strings.040E]</p>
<p>; 040F is the language ID for Icelandic<br />
[Strings.040F]</p>
<p>; 0421 is the language ID for Indonesian<br />
[Strings.0421]</p>
<p>; 0810 is the language ID for Italian &#8211; Switzerland<br />
[Strings.0810]</p>
<p>; 0410 is the language ID for Italian &#8211; Italy<br />
[Strings.0410]</p>
<p>; 0411 is the language ID for Japanese<br />
[Strings.0411]</p>
<p>; 0412 is the language ID for Korean<br />
[Strings.0412]</p>
<p>; 0426 is the language ID for Latvian<br />
[Strings.0426]</p>
<p>; 0427 is the language ID for Lithuanian<br />
[Strings.0427]</p>
<p>; 042F is the language ID for Macedonian (FYROM)<br />
[Strings.042F]</p>
<p>; 083E is the language ID for Malay – Brunei<br />
[Strings.083E]</p>
<p>; 043E is the language ID for Malay &#8211; Malaysia<br />
[Strings.043E]</p>
<p>; 043A is the language ID for Maltese<br />
[Strings.043A]</p>
<p>; 044E is the language ID for Marathi<br />
[Strings.044E]</p>
<p>; 0414 is the language ID for Norwegian &#8211; Bokml<br />
[Strings.0414]</p>
<p>; 0814 is the language ID for Norwegian &#8211; Nynorsk<br />
[Strings.0814]</p>
<p>; 0415 is the language ID for Polish<br />
[Strings.0415]</p>
<p>; 0416 is the language ID for Portuguese &#8211; Brazil<br />
[Strings.0416]</p>
<p>; 0816 is the language ID for Portuguese &#8211; Portugal<br />
[Strings.0816]</p>
<p>; 0417 is the language ID for Raeto-Romance<br />
[Strings.0417]</p>
<p>; 0818 is the language ID for Romanian &#8211; Republic of Moldova<br />
[Strings.0818]</p>
<p>; 0418 is the language ID for Romanian &#8211; Romania<br />
[Strings.0418]</p>
<p>; 0419 is the language ID for Russian<br />
[Strings.0419]</p>
<p>; 0819 is the language ID for Russian &#8211; Republic of Moldova<br />
[Strings.0819]</p>
<p>; 044F is the language ID for Sanskrit<br />
[Strings.044F]</p>
<p>; 0C1A is the language ID for Serbian &#8211; Cyrillic<br />
[Strings.0C1A]</p>
<p>; 081A is the language ID for Serbian &#8211; Latin<br />
[Strings.081A]</p>
<p>; 0432 is the language ID for Setsuana<br />
[Strings.0432]</p>
<p>; 041B is the language ID for Slovak<br />
[Strings.041B]</p>
<p>; 0424 is the language ID for Slovenian<br />
[Strings.0424]</p>
<p>; 042E is the language ID for Sorbian<br />
[Strings.042E]</p>
<p>; 2C0A is the language ID for Spanish &#8211; Argentina<br />
[Strings.2C0A]</p>
<p>; 400A is the language ID for Spanish &#8211; Bolivia<br />
[Strings.400A]</p>
<p>; 340A is the language ID for Spanish &#8211; Chile<br />
[Strings.340A]</p>
<p>; 240A is the language ID for Spanish &#8211; Colombia<br />
[Strings.240A]</p>
<p>; 140A is the language ID for Spanish &#8211; Costa Rica<br />
[Strings.140A]</p>
<p>; 1C0A is the language ID for Spanish &#8211; Dominican Republic<br />
[Strings.1C0A]</p>
<p>; 300A is the language ID for Spanish &#8211; Ecuador<br />
[Strings.300A]</p>
<p>; 0C0A is the language ID for Spanish &#8211; Spain<br />
[Strings.0C0A]</p>
<p>; 100A is the language ID for Spanish &#8211; Guatemala<br />
[Strings.100A]</p>
<p>; 480A is the language ID for Spanish &#8211; Honduras<br />
[Strings.480A]</p>
<p>; 080A is the language ID for Spanish &#8211; Mexico<br />
[Strings.080A]</p>
<p>; 4C0A is the language ID for Spanish &#8211; Nicaragua<br />
[Strings.4C0A]</p>
<p>; 180A is the language ID for Spanish &#8211; Panama<br />
[Strings.180A]</p>
<p>; 280A is the language ID for Spanish &#8211; Peru<br />
[Strings.280A]</p>
<p>; 500A is the language ID for Spanish &#8211; Puerto Rico<br />
[Strings.500A]</p>
<p>; 3C0A is the language ID for Spanish &#8211; Paraguay<br />
[Strings.3C0A]</p>
<p>; 440A is the language ID for Spanish &#8211; El Salvador<br />
[Strings.440A]</p>
<p>; 380A is the language ID for Spanish &#8211; Uruguay<br />
[Strings.380A]</p>
<p>; 200A is the language ID for Spanish &#8211; Venezuela<br />
[Strings.200A]</p>
<p>; 0441 is the language ID for Swahili<br />
[Strings.0441]</p>
<p>; 081D is the language ID for Swedish &#8211; Finland<br />
[Strings.081D]</p>
<p>; 041D is the language ID for Swedish &#8211; Sweden<br />
[Strings.041D]</p>
<p>; 0430 is the language ID for Southern Sotho<br />
[Strings.0430]</p>
<p>; 0449 is the language ID for Tamil<br />
[Strings.0449]</p>
<p>; 0444 is the language ID for Tatar<br />
[Strings.0444]</p>
<p>; 041E is the language ID for Thai<br />
[Strings.041E]</p>
<p>; 0431 is the language ID for Tsonga<br />
[Strings.0431]</p>
<p>; 041F is the language ID for Turkish<br />
[Strings.041F]</p>
<p>; 0422 is the language ID for Ukrainian<br />
[Strings.0422]</p>
<p>; 0420 is the language ID for Urdu<br />
[Strings.0420]</p>
<p>; 0843 is the language ID for Uzbek &#8211; Cyrillic<br />
[Strings.0843]</p>
<p>; 0443 is the language ID for Uzbek &#8211; Latin<br />
[Strings.0443]</p>
<p>; 042A is the language ID for Vietnamese<br />
[Strings.042A]</p>
<p>; 0434 is the language ID for Xhosa<br />
[Strings.0434]</p>
<p>; 043D is the language ID for Yiddish<br />
[Strings.043D]</p>
<p>; 0435 is the language ID for Zulu<br />
[Strings.0435]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=95</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inf 格式详解</title>
		<link>http://www.eusoftware.com/hongyu/?p=93</link>
		<comments>http://www.eusoftware.com/hongyu/?p=93#comments</comments>
		<pubDate>Mon, 20 Jul 2009 09:55:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[Inf]]></category>
		<category><![CDATA[setup]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=93</guid>
		<description><![CDATA[<p>INF 文件必须包含以下规则：</p>
<p>       节（ Sections ）开始于由中括号 ([]) 扩起来的节名</p>
<p>必须包含版本信息节以表明自己属于 win95 还是 winnt4 格式。</p>
<p>值 (Value) 由 %strkey% 替代的表达式字符串表达组成， strkey 必须在 strings 节中定义。如果出现 % ，则用 %% 替代。</p>
<p>Setup 程序使用以下各节 :</p>
<p>[Version]       必须包含在 INF 文件中，表明 inf 文件格式</p>
<p>[Version]</p>
<p>Signature=&#8221;signature-name&#8221;</p>
<p>Class=class-name</p>
<p>ClassGUID=GUID</p>
<p>Provider=INF-creator</p>
<p>LayoutFile=filename.inf[,filename.inf]&#8230;</p>
<p>Signature-name</p>
<p>参数可以取值 $Windows NT$, $Chicago$, or $Windows 95$ （引号括起来） . 如果不是以上这些字符串，则不被认可为 inf 文件。</p>
<p>Class-name</p>
<p>此参数用于安装设备驱动。详细信息见 DDK Programmer&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>INF 文件必须包含以下规则：</p>
<p>       节（ Sections ）开始于由中括号 ([]) 扩起来的节名</p>
<p>必须包含版本信息节以表明自己属于 win95 还是 winnt4 格式。</p>
<p>值 (Value) 由 %strkey% 替代的表达式字符串表达组成， strkey 必须在 strings 节中定义。如果出现 % ，则用 %% 替代。</p>
<p>Setup 程序使用以下各节 :</p>
<p>[Version]       必须包含在 INF 文件中，表明 inf 文件格式</p>
<p>[Version]</p>
<p>Signature=&#8221;signature-name&#8221;</p>
<p>Class=class-name</p>
<p>ClassGUID=GUID</p>
<p>Provider=INF-creator</p>
<p>LayoutFile=filename.inf[,filename.inf]&#8230;</p>
<p>Signature-name</p>
<p>参数可以取值 $Windows NT$, $Chicago$, or $Windows 95$ （引号括起来） . 如果不是以上这些字符串，则不被认可为 inf 文件。</p>
<p>Class-name</p>
<p>此参数用于安装设备驱动。详细信息见 DDK Programmer&#8217;s Guide.</p>
<p>GUID</p>
<p>此参数用于安装设备驱动。详细信息见 DDK Programmer&#8217;s Guide.</p>
<p>INF-creator</p>
<p>标示 INF 的创建者 . 典型的情况，此值为 inf 文件的创建者所在组织</p>
<p>filename.inf</p>
<p>INF 文件必须包含 SourceDisksFiles 和 SourceDisksNames 节。这些文件的描述文件通常命名为 LAYOUT.INF. 如果文件名不是特别指定， SourceDisksNames 和 SourceDisksFiles 必须出现在当前 inf 文件中</p>
<p>以下为典型的例子：</p>
<p>[Version]</p>
<p>Signature=&#8221;$Windows NT$&#8221;</p>
<p>Class=Mouse</p>
<p>ClassGUID={4D36E96F-E325-11CE-BFC1-08002BE10318}</p>
<p>Provider=%Provider%</p>
<p>LayoutFile=layout.inf</p>
<p>[Strings]</p>
<p>Provider=&#8221;Corporation X&#8221;</p>
<p>[Install]   此节指定包含的安装指令节，每一个条目将会成为一节</p>
<p>              [install-section-name]</p>
<p>LogConfig=log-config-section-name[,log-config-section-name]&#8230;</p>
<p>Copyfiles=file-list-section[,file-list-section]&#8230;</p>
<p>Renfiles=file-list-section[,file-list-section]&#8230;</p>
<p>Delfiles=file-list-section[,file-list-section]&#8230;</p>
<p>UpdateInis=update-ini-section[,update-ini-section]&#8230;</p>
<p>UpdateIniFields=update-inifields-section[,update-inifields-section]&#8230;</p>
<p>AddReg=add-registry-section[,add-registry-section]&#8230;</p>
<p>DelReg=del-registry-section[,del-registry-section]&#8230;</p>
<p>Ini2Reg=ini-to-registry-section[,ini-to-registry-section]&#8230;</p>
<p>              以上各条目并非全部必须。节名必须为可见字符。每个条目包含一到多个节。第一个命名之后的所有命名必须以，引导。条目指定了必须出现在 INF 文件中的各节。 CopyFiles 则可例外（如果没有任何文件被拷贝）。</p>
<p>如果安装驱动程序，仅仅使用 LogConfig 条目。详见 DDK Programmer&#8217;s Guide.</p>
<p>              CopyFiles 条目中可以包含特殊字符 @ 以直接拷贝一个单一文件。文件将拷贝到 DefaultDestDir, DestinationDirs 节包含了 DefaultDestDir 的描述。如例子：</p>
<p>              [MyInstall]</p>
<p>CopyFiles= @MyFile.exe</p>
<p>此文件将拷贝到缺省目标目录。</p>
<p>为适应不同平台，可以在 install 节后加上不同的后缀。可以出现 defaultInstall.nt 这样的节名。 install-section-name 可选的后缀：</p>
<p>Extension                                      Platform</p>
<p>.Win                                          Windows 95</p>
<p>.NT                                           Windows NT (all platforms)</p>
<p>.NTx86                                        Windows NT (x86 only)</p>
<p>.NTMIPS                              Windows NT (MIPS only)</p>
<p>.NTAlpha                                    Windows NT (Alpha only)</p>
<p>.NTPPC                                       Windows NT (PowerPC only)</p>
<p>以下例子展示了如何出现两个 copyfiles 节：</p>
<p>[Ser_Inst]</p>
<p>CopyFiles=Ser_CopyFiles, mouclass_CopyFiles</p>
<p>[Ser_CopyFiles]</p>
<p>sermouse.sys</p>
<p>[mouclass_CopyFiles]</p>
<p>mouclass.sys</p>
<p>[Add Registry]       描述如何增加注册表项目。 add -registry-section 节名必须处现在 install 节中的 AddReg 条目中。</p>
<p>              [add-registry-section]</p>
<p>reg-root-string, [subkey], [value-name], [flags], [value]</p>
<p>[reg-root-string, [subkey], [value-name], [flags], [value]]</p>
<p>              reg-root-string 注册表的根名：</p>
<p>              HKCR                HKEY_CLASSES_ROOT.</p>
<p>HKCU                HKEY_CURRENT_USER.</p>
<p>HKLM                HKEY_LOCAL_MACHINE.</p>
<p>HKU                HKEY_USERS.</p>
<p>HKR                 相关于 SetupInstallFromInfSection. 节中指定的值</p>
<p>subkey</p>
<p>可选，例如 key1\key2\key3&#8230;.</p>
<p>value-name</p>
<p>可选，标示 subkey 的值名称。对于字符串类型可以空，标示缺省字符串值</p>
<p>flag        值类型的标示</p>
<p>Value                             Meaning</p>
<p>FLG_ADDREG_BINVALUETYPE  The value is &#8220;raw&#8221; data.</p>
<p>FLG_ADDREG_NOCLOBBER         如果注册表中出现不要覆盖此值 .</p>
<p>FLG_ADDREG_DELVAL                       从注册表中删除此键</p>
<p>FLG_ADDREG_APPEND                       追加一个值到已存值中，仅仅支持 REG_MULTI_SZ 值</p>
<p>FLG_ADDREG_TYPE_MASK               Mask.</p>
<p>FLG_ADDREG_TYPE_SZ                REG_SZ 类型</p>
<p>FLG_ADDREG_TYPE_MULTI_SZ  REG_MULTI_SZ.</p>
<p>FLG_ADDREG_TYPE_EXPAND_SZ REG_EXPAND_SZ.</p>
<p>FLG_ADDREG_TYPE_BINARY    REG_BINARY.</p>
<p>FLG_ADDREG_TYPE_DWORD    REG_DWORD.</p>
<p>FLG_ADDREG_TYPE_NONE               REG_NONE.</p>
<p>                     Windows 95 安装程序将视扩展数据类型为 REG_SZ or REG_BINARY.</p>
<p>value</p>
<p>可选 . 16 进值或者字符串</p>
<p>[CopyFiles]       此类节可以有多个，定义于 install 节中。</p>
<p>                     [file-list-section]</p>
<p>destination-file-name[,source-file-name][,temporary-file-name][,flag]</p>
<p>[destination-file-name[,source-file-name][,temporary-file-name]][,flag]</p>
<p>.</p>
<p>                     destination-file-name</p>
<p>目标文件名，如果没有给出源文件名，那么此名也是源文件名 .</p>
<p>source-file-name</p>
<p>源文件名，如果没有给出目标文件名，那么此名也是目标文件名 .</p>
<p>temporary-file-name</p>
<p>被忽略， setup 函数自动处理临时文件 .</p>
<p>flag</p>
<p>可选，用于控制文件如何被拷贝。你必须配置实际值</p>
<p>COPYFLG_WARN_IF_SKIP (0&#215;00000001)</p>
<p>如果用户试图在发生一个错误后跳过将显示警告信息</p>
<p>COPYFLG_NOSKIP (0&#215;00000002)</p>
<p>不允许用户跳过拷贝此文件</p>
<p>COPYFLG_NOVERSIONCHECK (0&#215;00000004)</p>
<p>如果文件存在于目标目录，忽略</p>
<p>COPYFLG_FORCE_FILE_IN_USE (0&#215;00000008)</p>
<p>替换被使用得文件？，当拷贝时文件被使用</p>
<p>COPYFLG_NO_OVERWRITE (0&#215;00000010)</p>
<p>不覆盖目标文件中已存文件</p>
<p>COPYFLG_NO_VERSION_DIALOG (0&#215;00000020)</p>
<p>如果目标文件已存且新则不覆盖也不出现对话框</p>
<p>COPYFLG_REPLACEONLY (0&#215;00000040)</p>
<p>替换目标文件</p>
<p>[delete Registry]       描述如何增加注册表项目。 del -registry-section 节名必须处现在 install 节中的 DelReg 条目中。</p>
<p>              [del-registry-section]</p>
<p>reg-root-string, [subkey], [value-name], [flags], [value]</p>
<p>[reg-root-string, [subkey], [value-name], [flags], [value]]</p>
<p>              reg-root-string 注册表的根名：</p>
<p>              HKCR                HKEY_CLASSES_ROOT.</p>
<p>HKCU                HKEY_CURRENT_USER.</p>
<p>HKLM                HKEY_LOCAL_MACHINE.</p>
<p>HKU                HKEY_USERS.</p>
<p>HKR                 相关于 SetupInstallFromInfSection. 节中指定的值</p>
<p>subkey</p>
<p>value-name</p>
<p>可选，标示 subkey 的值名称。对于字符串类型可以空，标示缺省字符串值</p>
<p>[Delete Files]       此节指定需要被删除的文件 , 节名必须出现在 install 中的 delfiles 条目中</p>
<p>              [file-list-section]</p>
<p>file-name[,,,flag]</p>
<p>              flag</p>
<p>              可选。</p>
<p>DELFLG_IN_USE (0&#215;00000001)</p>
<p>当因为文件正被使用， SetupCommitFileQueue 取消 , 将排队在系统重新启动时候被删除。</p>
<p>如果不使用此值，则安装时候被使用的文件不会被 delete files 指定节删除</p>
<p>DELFLG_IN_USE1 (0&#215;00010000)</p>
<p>高字节版本的 DELFLG_IN_USE. Setting DELFLG_IN_USE1 差别在于同样可适用于 Copyfiles 节和 delete Files 节即使 COPYFLG_WARN_IF_SKIP 标志被使用。</p>
<p>[INI File to Registry] 此节指示那些 ini 文件中的条目将对应到注册表。</p>
<p>                     [ini-to-registry-section]</p>
<p>ini-file, ini-section, [ini-key],reg-root-string,subkey[,flags]</p>
<p>ini-file</p>
<p>ini 文件名 .</p>
<p>ini-section</p>
<p>ini 文件的节</p>
<p>ini-key</p>
<p>条目</p>
<p>flags</p>
<p>指示当注册表存在对应的注册表项目是否是否覆盖旧值。</p>
<p>Bit        value </p>
<p>0        0               缺省，不删除 ini 文件项目，当 ini 转移到注册表后</p>
<p>0       1               删除 ini 文件中的项目，当 ini 转移到注册表后  </p>
<p>1        0               缺省，当注册表存在此子项，则不覆盖</p>
<p>1        1               覆盖</p>
<p>[Rename Files]              此类型节列出那些将样改名的文件。此节名必须出现在 install 节中</p>
<p>              [rename-files-section-name]</p>
<p>new-file-name,old-file-name</p>
<p>new-file-name</p>
<p>新文件名</p>
<p>old-file-name</p>
<p>原来的文件名。此参数必须定义于 SourceDisksFiles 节中。</p>
<p>[Update INI Fields]            此节替换、增加、删除指定 ini 文件的条目。此节名必须存在于 install 节中。</p>
<p>              [update-inifields-section-name]</p>
<p>ini-file,ini-section,profile-name,[old-field],[new-field],[flags]</p>
<p>              参数说明见上</p>
<p>[Update INI File]  此节删除、替换或者新增 INI 的项目 . 节名必须处现在 install 节中的 UpdateInis 条目中</p>
<p>              update-ini-section-name]</p>
<p>ini-file,ini-section,[old-ini-entry],[new-ini-entry],[flags]</p>
<p>              ini-file</p>
<p>包含将要改变的条目的 ini 文件。</p>
<p>ini-section</p>
<p>节名</p>
<p>old-ini-entry</p>
<p>可选的，通常为 key=value 形式</p>
<p>new-ini-entry</p>
<p>可选。通常来自 key=value. key 或者 value 可以为可替换的字符串。</p>
<p>flags</p>
<p>可选命令标志 .</p>
<p>Value               Meaning</p>
<p>0                   缺省。如果 old-ini-entry key 出现在 INI file 条目中 , 将被 new-ini-entry 替换。 值会被忽略，只要 key 匹配即可。为无条件增加新条目到 ini 文件，可设置 old-ini-entry 为 NULL 。 为无条件从 ini 文件中删除 old-ini-entry from ，设置 new-ini-entry 为 NULL 。</p>
<p>1                   如果 old-ini-entry 的 key 和 value 已经存在于 INI 文件 , 将被 new-ini-entry 替换。   old-ini-entry 参数的 key 和 value 都必须匹配</p>
<p>2                   如果 old-ini-entry 参数没有出现在 INI 文件中 , 将不进行任何替换</p>
<p>若 old-ini-entry 的 key 存在于 INI 文件且 new-ini-entry 的 key 存在于 INI 文件 , INI 文件中匹配的 new-ini-entry 的 key 参数被删除 ,  old-ini-entry 的 key 匹配参数被替换</p>
<p>3                   类似 2 ，但是，例外情况为： old-ini-entry 参数匹配基于 key 和 value, 并不限于 key</p>
<p>可以使用通配符 (*) 指代 key 和 value 的一部分和全部</p>
<p>ini 文件名可以为字符串或者字符键。即 %strkey% ，此 strkey 定义于 [Strings] 节，且必须是一个合法文件名。</p>
<p>Ini 文件明应当包含目录，可以是直接目录，也可以是特定目录标示符。</p>
<p>可以拥有 %dirid% 指定目录， dirid 指定于 SetupSetDirectoryId 节中 . 当时用目录标示符，你应当使用反斜线号于一个目录路径中。举例： , 你可以使用 %11%\card.ini 表示 CARD.INI 存在于 System32 目录中。</p>
<p>以下为例子：</p>
<p>%11%\sample.ini, Section1,, Value1=2             ; 新增一个条目</p>
<p>%11%\sample.ini, Section2, Value3=*,             ; 删除老条目</p>
<p>%11%\sample.ini, Section4, Value5=1, Value5=4     ; 替换老条目</p>
<p>[Services] 条目        此节条目列出增加和删除的服务列表。</p>
<p>              [install-section-name.Services]</p>
<p>AddService=ServiceName,flag,service-install-section[,event-log-install-section]</p>
<p>DelService=ServiceName</p>
<p>              ServiceName</p>
<p>将要安装 / 删除的服务名</p>
<p>flag</p>
<p>指定将如何增加服务。此参数仅用于 AddService 键，取值为：</p>
<p>SPSVCINST_TAGTOFRONT (0&#215;1)</p>
<p>将服务标签题见到服务所在组的前列</p>
<p>SPSVCINST_ASSOCSERVICE (0&#215;2)</p>
<p>此增加的服务关联的服务 .</p>
<p>service-install-section</p>
<p>服务安装节</p>
<p>event-log-install-section</p>
<p>时间记录安装节。</p>
<p>以下为例子：</p>
<p>              [Ser_Inst.Services]</p>
<p>AddService = sermouse, 0&#215;00000002, sermouse_Service_Inst, sermouse_EventLog_Inst ; Port Driver</p>
<p>AddService = mouclass,, mouclass_Service_Inst, mouclass_EventLog_Inst</p>
<p>                       ; Class Driver</p>
<p>[Service Install]              此节列出将要安装的每一个服务信息</p>
<p>       [install-section-name_ServiceInstallSection]</p>
<p>DisplayName=[name]</p>
<p>ServiceType=type-code</p>
<p>StartType=start-code</p>
<p>ErrorControl=error-control-level</p>
<p>ServiceBinary=path-to-service</p>
<p>LoadOrderGroup=[load-order-group-name]</p>
<p>Dependencies=+depend-on-group-name[[,depend-on-service-name]&#8230;]</p>
<p>StartName=[driver-object-name]</p>
<p>              name</p>
<p>可选，友好的服务名称</p>
<p>type-code</p>
<p>驱动类型。为任何被 theCreateService 函数认可的参数。</p>
<p>start-code</p>
<p>何时启动驱动程序。可为：</p>
<p>SERVICE_BOOT_START (0&#215;0)</p>
<p>由操作系统 loader 启动。使用此值仅用于操作系统基本服务。</p>
<p>SERVICE_SYSTEM_START (0&#215;1)</p>
<p>操作系统初始化式启动。</p>
<p>SERVICE_AUTO_START (0&#215;2)</p>
<p>SCM 在系统启动期间启动</p>
<p>SERVICE_DEMAND_START (0&#215;3)</p>
<p>SCM 根据需要启动</p>
<p>SERVICE_DISABLED (0&#215;4)</p>
<p>此服务不可被启动</p>
<p>error-control-level</p>
<p>指定错误控制级别。</p>
<p>CRITICAL (0&#215;3)</p>
<p>如果驱动装载失败，启动失败。如果启动不是在 “最后一次正确（ LastKnownGood. ）”控制集，切换到 LastKnownGood 。如果启动试图用于 LastKnownGood, 运行故障检查例程</p>
<p>SEVERE (0&#215;2)</p>
<p>如果启动不是用于 LastKnownGood , 切换到 LastKnownGood 。如果启动试图 LastKnownGood, 发生错误时继续启动。</p>
<p>NORMAL (0&#215;1)</p>
<p>若初始化时失败，启动将继续，但显示警告信息</p>
<p>IGNORE (0&#215;0)</p>
<p>若初始化时失败，启动将继续，无警告信息</p>
<p>path</p>
<p>二进制文件路径</p>
<p>load-order-group-name</p>
<p>可选 . 指示服务处在的服务组中的次序 : pointer, port, primary disk, and so forth.</p>
<p>+depend-on-group-name</p>
<p>可选，服务依赖的服务组，服务仅当该组的最后一个服务都启动后才启动</p>
<p>depend-on-service-name</p>
<p>可选。依赖的服务。</p>
<p>driver-object-name</p>
<p>可选。如果类型属于 Kernel driver 或者 file system driver, ，此名用于 I/O 管理器装载的名称</p>
<p>例子：</p>
<p>[mouclass_Service_Inst]</p>
<p>DisplayName    = %mouclass.SvcDesc%</p>
<p>ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER</p>
<p>StartType      = 1                  ; SERVICE_SYSTEM_START</p>
<p>ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL</p>
<p>ServiceBinary  = %12%\mouclass.sys</p>
<p>LoadOrderGroup = Pointer Class</p>
<p>[DestinationDirs]       此节用于指定（ copy file ,rename file 等节中的目标目录）</p>
<p>       [DestinationDirs]</p>
<p>file-list-section=drid[,subdir]</p>
<p>.      .</p>
<p>[DefaultDestDir=drid[,subdir]]</p>
<p>file-list-section</p>
<p> Copy Files, Rename Files, 或者 Delete Files 节名 . drid</p>
<p>目录标示 (DRID) 。 安装程序在安装期间替换一个 DIRID 采用实际的目录</p>
<p>DIRID  %dirid% 为预先定义的目录</p>
<p>DIRID 可为以下值：</p>
<p>-01,0xffff               目录</p>
<p>01                        SourceDrive:\path.</p>
<p>10                        Windows directory.</p>
<p>11                        System directory. (%windir%\system on Windows 95, %windir%\system32 on Windows NT)</p>
<p>12                        Drivers directory.(%windir%\system32\drivers on Windows NT)</p>
<p>17                        INF 文件目录</p>
<p>18                        help 目录</p>
<p>20                         Fonts directory.</p>
<p>21                        察看器目录</p>
<p>24                         应用程序目录</p>
<p>25                        共享目录 Shared directory.</p>
<p>30                         启动驱动器的根目录 Root directory of the boot drive.</p>
<p>50                         %windir%\system</p>
<p>51                        假脱机目录 Spool directory.</p>
<p>52                         Spool drivers directory.</p>
<p>53                        用户 Profile 目录</p>
<p>54                         ntldr or OSLOADER.EXE 所在目录</p>
<p>subdir</p>
<p>子目录名</p>
<p>可选项 DefaultDestDir 提供缺省的目标目录。如果 DefaultDestDir 未用于 DestinationDirs 节，缺省的目录设为 drid_system.</p>
<p>[SourceDisksFiles]          此节指定源安装盘上的文件</p>
<p>              为了允许多操作系统分发源文件，你可构造针对特定平台的 SourceDisksFiles 节举例来讲， 在 MIPS 平台上，所有安装功能在用到 SourceDisksFiles 节将首先查找 SourceDisksFiles.Mips 节。 如果安装功能未找到 SourceDisksFiles.Mips 节 , 或者某个特定行未能在那里找到，安装功能将使用 SourceDisksFiles 节。此行为直接或间接影响安装功能处理 SourceDisksFiles 节作为其进程的一部分。</p>
<p>       大小写不敏感的前缀可为：</p>
<p>              alpha</p>
<p>mips</p>
<p>ppc</p>
<p>x86</p>
<p>              [SourceDisksFiles]</p>
<p>filename=disk-number[,subdir][,size]</p>
<p>       filename</p>
<p>                在源此盘上的文件名</p>
<p>disk-number</p>
<p>                第几号源盘包含此文件。大于等于 1 ，且定义于 SourceDisksNames 节</p>
<p>subdir</p>
<p>                可选参数。在源盘上的子目录，缺省为源盘的跟目录</p>
<p>size</p>
<p>         可选参数，文件的压缩尺寸</p>
<p>         [SourceDisksFiles]</p>
<p>         SRS01.x86 = 1                       ；源文件 SRS01.x86 存在于安装盘一号盘的根目录</p>
<p>[SourceDisksNames]         指示源文件的磁盘名称</p>
<p>         为了允许多操作系统分发源文件，你可构造针对特定平台的 SourceDisksNames 节举例来讲， 在 MIPS 平台上，所有安装功能在用到 SourceDisksNames 节将首先查找 SourceDisksNames.Mips 节。 如果安装功能未找到 SourceDisksNames.Mips 节 , 或者某个特定行未能在那里找到，安装功能将使用 SourceDisksNames 节。此行为直接或间接影响安装功能处理 SourceDisksNames 节作为其进程的一部分。</p>
<p>大小写不敏感的前缀可为：</p>
<p>              alpha</p>
<p>mips</p>
<p>ppc</p>
<p>x86</p>
<p>             [SourceDisksNames[.platform]]</p>
<p>             disk-ordinal=&#8221;disk-description&#8221;[,[disk-label],[unused,path]</p>
<p>.              </p>
<p>                platform</p>
<p>                  指示源文件应用的平台指示符。</p>
<p>                disk-ordinal</p>
<p>                                磁盘序号</p>
<p>                disk-description</p>
<p>                                “”包含的字符串，用于标示磁盘。</p>
<p>                disk-label</p>
<p>                                磁盘卷标</p>
<p>                unused</p>
<p>                                保留未用</p>
<p>                path                </p>
<p>                                可选参数，源文件的绝对路径，如果未用，则表示示根目录</p>
<p>                如下例子中， write.exe 所有平台都一样，且存在于源盘 1 的 \common 目录。圆盘 1 将所有平台都一致的文件存在于 \common 目录中。 CMD.EXE 文件特定于平台，磁盘 2 指示安装功能针对每一个平台的特定目录。 HALNECMP.DLL 文件特定于 MIPS 平台。</p>
<p>                [SourceDisksNames]</p>
<p>                1 = &#8220;Windows NT CD-ROM&#8221;, Instd1,, \common</p>
<p>                [SourceDisksNames.Alpha]</p>
<p>                2 = &#8220;Windows NT CD-ROM&#8221;, Instd1,, \alpha</p>
<p>                [SourceDisksNames.Mips]</p>
<p>                2 = &#8220;Windows NT CD-ROM&#8221;, Instd1,, \mips</p>
<p>                [SourceDisksNames.x86]</p>
<p>                2 = &#8220;Windows NT CD-ROM&#8221;, Instd1,, \x86</p>
<p>                [SourceDisksNames.ppc]</p>
<p>                2 = &#8220;Windows NT CD-ROM&#8221;, Instd1,, \ppc</p>
<p>                [SourceDisksFiles]</p>
<p>                write.exe = 1</p>
<p>                cmd.exe = 2</p>
<p>                [SourceDisksFiles.Mips]</p>
<p>                halnecmp.dll = 2</p>
<p>[EventLog Install]                该节往注册表中加入事件消息文件，也可利用此节移除事件消息文件。</p>
<p>                [install-section-name_EventLogInstallSection]</p>
<p>                AddReg=add-registry-section</p>
<p>                DelReg=del-registry-section</p>
<p>                add-registry-section</p>
<p>                del-registry-section</p>
<p>                                     事件消息节名</p>
<p>                AddReg                             指示哪节将作为增加事件的注册表项</p>
<p>                DelReg            指示删除事件项</p>
<p>                以下为典型的 EventLog 安装节：</p>
<p>                [sermouse_EventLog_Inst]</p>
<p>                                AddReg=sermouse_EventLog_AddReg             </p>
<p>                [sermouse_EventLog_AddReg]</p>
<p>         HKR,EventMessageFile,0&#215;00020000,&#8221;%%SystemRoot%%\System32\IoLogMsg.dll\;%%SystemRoot%%\System32\drivers\sermouse.sys&#8221;</p>
<p>                HKR,,TypesSupported,0&#215;00010001,7</p>
<p>[Strings]    该节定义了 1 个或多个字符串关键字 . 一个字符串 key 展开一个可打印字符串</p>
<p>可以有针对特定语言的 String 节</p>
<p>                [Strings[.langid]]</p>
<p>                strings-key=value</p>
<p>                langid</p>
<p>                                可选的指示 string 节所属语言的语言标示符 . 举例 , U.S. English 是 0409 以及 Standard French 是 040c.</p>
<p>                strings-key</p>
<p>                                由字符和数字组成的唯一名符</p>
<p>                value</p>
<p>                                展开后的字符串内容</p>
<p>                例子：</p>
<p>                [Strings]</p>
<p>                String0=&#8221;Corporation X&#8221;</p>
<p>                String1=&#8221;Corporation X&#8221;</p>
<p>                String2=&#8221;CS2590 SCSI Adapter&#8221;</p>
<p>                特定语言的例子：</p>
<p>                [Strings.0409]</p>
<p>                ; American English strings</p>
<p>                S1 = &#8220;Hello&#8221;</p>
<p>                [Strings.0009]</p>
<p>                ; British English strings</p>
<p>                ; Note that 0009 is used instead of 0809 to make this the default</p>
<p>                ; for English languages other than U.S. English.</p>
<p>                S1 = &#8220;Greetings&#8221;</p>
<p>                [Strings]</p>
<p>                ; French strings</p>
<p>                ; Not specifying a langid makes this the default</p>
<p>                S1 = &#8220;Bonjour&#8221;</p>
<p>                注释</p>
<p>                尽管此节通常处于 inf 文件的最后一节，但是定义的字符串 Key 可用于 inf 文件任何位置。安装程序将展开字符串</p>
<p>                如果用到 %, 请使用 %% 。</p>
<p>                Windows 95: 不可包含 strings 节，不支持多语言 .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=93</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPhone 3.0 的升级真的有点烂</title>
		<link>http://www.eusoftware.com/hongyu/?p=89</link>
		<comments>http://www.eusoftware.com/hongyu/?p=89#comments</comments>
		<pubDate>Fri, 26 Jun 2009 20:02:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[产品评测]]></category>
		<category><![CDATA[blue tooth]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod touch]]></category>
		<category><![CDATA[耳机]]></category>
		<category><![CDATA[蓝牙]]></category>

		<guid isPermaLink="false">http://www.eusoftware.com/hongyu/?p=89</guid>
		<description><![CDATA[<p>期待已久的 IPhone 3.0 终于放出来了，花了 7.99 欧给我的 ipod touch 升了级，大失所望。</p>
<p>倒不是对新增的功能失望，而是对苹果软件的质量失望，首先是蓝牙，3.0 支持蓝牙了，终于证实早先拆机发现的蓝牙芯片是可用的，但是我在配对我的蓝牙耳机的过程中极其辛苦，重启了 n 次，终于才成功，不过，诡异的是，我现在无法关闭蓝牙了，一关就自动又开启。我的蓝牙耳机的控制功能完全不支持，要暂停，快进等等还是要掏出主机来，我晕，apple 的 DX 们脑子进水了不成？我的蓝牙耳机也只能实现立体声功能，耳麦的功能也不支持，真是我见过对蓝牙耳机支持最糟糕的设备。</p>
<p>更无法容忍的还在后头，同步后发现，之前看的好好的某些 Podcast 视频在升级后居然不能看了，它宣称格式不支持，然后自说自话自动删除了，我X! 是从你们 iTune Store 下载的啊！</p>
<p>这样就放出来了？</p>
<p>至今发现唯一值得称道的就是蓝牙信号相当强，隔了两堵水泥墙，音效照样不错，这个大概要归功于人家的芯片，大约没有 apple 软件工程师的功劳。</p>
]]></description>
			<content:encoded><![CDATA[<p>期待已久的 IPhone 3.0 终于放出来了，花了 7.99 欧给我的 ipod touch 升了级，大失所望。</p>
<p>倒不是对新增的功能失望，而是对苹果软件的质量失望，首先是蓝牙，3.0 支持蓝牙了，终于证实早先拆机发现的蓝牙芯片是可用的，但是我在配对我的蓝牙耳机的过程中极其辛苦，重启了 n 次，终于才成功，不过，诡异的是，我现在无法关闭蓝牙了，一关就自动又开启。我的蓝牙耳机的控制功能完全不支持，要暂停，快进等等还是要掏出主机来，我晕，apple 的 DX 们脑子进水了不成？我的蓝牙耳机也只能实现立体声功能，耳麦的功能也不支持，真是我见过对蓝牙耳机支持最糟糕的设备。</p>
<p>更无法容忍的还在后头，同步后发现，之前看的好好的某些 Podcast 视频在升级后居然不能看了，它宣称格式不支持，然后自说自话自动删除了，我X! 是从你们 iTune Store 下载的啊！</p>
<p>这样就放出来了？</p>
<p>至今发现唯一值得称道的就是蓝牙信号相当强，隔了两堵水泥墙，音效照样不错，这个大概要归功于人家的芯片，大约没有 apple 软件工程师的功劳。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eusoftware.com/hongyu/?feed=rss2&amp;p=89</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
