<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Yonsm.NET]]></title> 
<link>HTTP://WWW.Yonsm.NET/index.php</link> 
<description><![CDATA[SHARE YONSM'S IDEAS]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Yonsm.NET]]></copyright>
<item>
<link>HTTP://WWW.Yonsm.NET/read.php?516</link>
<title><![CDATA[在 iPhone/iPad 中随意修改数字键盘按钮]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[文档]]></category>
<pubDate>Wed, 01 Sep 2010 19:00:55 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?516</guid> 
<description>
<![CDATA[ 
	一、起因<br/><br/>iPhone 的键盘，特别是数字键盘，往往不能满足程序的输入需要。最典型的例子就是在数字键盘上添加一个“.”，用来输入小数点。安装 iPhone SDK 官方的观点，如果要使用小数点键盘，那只好使用数字和符号键盘，但那样没个按键很小，且不需要的按键太多。<br/><br/><br/>二、现有方案<br/><br/>针对这种情况，最早的解决方案，请参考这里：<a href="http://www.cnblogs.com/mac_arthur/archive/2010/05/18/1738363.html" target="_blank">http://www.cnblogs.com/mac_arthur/archive/2010/05/18/1738363.html</a>。使用的是 以下代码来检测一个 Notification。<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">[[NSNotificationCenter defaultCenter] addObserver:self <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selector:@selector(addCustomKeyBoardButton)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name:UIKeyboardWillShowNotification<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object:nil];</div></div><br/><br/>这种方法，在 iOS 4.0 后失效了，原因有两个，一是UIKeyboard<span style="color: #FF0000;">Will</span>ShowNotification的时候，键盘根本没有创建出来;另外，Class Name 也被外包了一层，叫做UIPeripheralHostView。<br/><br/>于是又有了一种改进的方案，请看这里：<a href="http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key" target="_blank">http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key</a>。主要的改进是在UIKeyboard<span style="color: #FF0000;">Did</span>ShowNotification的通知消息中来修改键盘。但正如作者所说，这里有个不完美的情况，只能等键盘动画显示完成之后，才能添加显示我们的东西，视觉效果不好。<br/><br/>三、改进方案<br/><br/>经过试验，找到一个比较完美的方案：在 UITextField 的becomeFirstResponder和resignFirstResponder中修改键盘。<br/><br/>定以一个类，假如叫做 KBCustomTextField : UITextField，在这个类中加入一下代码：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>//<br/>- (BOOL)becomeFirstResponder<br/>&#123;<br/>&nbsp;&nbsp;BOOL ret = [super becomeFirstResponder];<br/>&nbsp;&nbsp;[self modifyKeyView:@"NumberPad-Empty" display:@"." represent:@"." interaction:@"String"];<br/>&nbsp;&nbsp;return ret;<br/>&#125;<br/><br/>//<br/>- (BOOL)resignFirstResponder<br/>&#123;<br/>&nbsp;&nbsp;BOOL ret = [super resignFirstResponder];<br/>&nbsp;&nbsp;[self modifyKeyView:@"NumberPad-Empty" display:nil represent:nil interaction:@"None"];<br/>&nbsp;&nbsp;return ret;<br/>&#125;<br/></div></div><br/><br/>modifyKeyView 的实现可以参看附件。我使用的是循环查找UIKBKeyView类，这是Apple 的 Private API（私有API的声明可以在这里找：<a href="http://github.com/kennytm/iphone-private-frameworks/tree/master/UIKit/" target="_blank">http://github.com/kennytm/iphone-private-frameworks/tree/master/UIKit/</a>），不确信能否通过 App Store 的审核：）<br/><br/>更近一步地，我完善了一下 KBCustomTextField，通过这个类，非常方便地就可以做到自定义输入键盘：<br/><br/><a href="attachment.php?fid=45">点击这里下载文件</a><br/><br/>1. 使用小数点和数字键盘：非常简单，只要在 IB 中把 UITextField 的类改成KBCustomTextField，就OK了，不用一行代码，效果如下图：<br/><a href="HTTP://WWW.Yonsm.NET/attachment.php?fid=42" target="_blank"><img src="HTTP://WWW.Yonsm.NET/attachment.php?fid=42" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>2. 在键盘的按键上添加一个文字按钮（并指定处理动作）：设置KBCustomTextField.kbDelegate，实现这两个函数即可：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>// [Yonsm] Handle keyboard show<br/>- (void)keyboardShow:(KBCustomTextField *)sender<br/>&#123;<br/>&nbsp;&nbsp;[sender addCustomButton:@"NumberPad-Empty" title:@"DONE" target:self action:@selector(onButton:)];<br/>&#125;<br/><br/>// [Yonsm] Handle keyboard hide<br/>- (void)keyboardHide:(KBCustomTextField *)sender<br/>&#123;<br/>&nbsp;&nbsp;[sender delCustomButton:@"NumberPad-Empty"];<br/>&#125;<br/></div></div><br/><a href="HTTP://WWW.Yonsm.NET/attachment.php?fid=43" target="_blank"><img src="HTTP://WWW.Yonsm.NET/attachment.php?fid=43" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>3. 更近一步地，这两个 Delegate 函数中，你只要通过 name 来查找到想要修改的 UIKBKeyView，就可以随便修改它。name 可以通过 KBCustomTextField 的#define _LOG_KEY_VIEW来列出所有的按键名称。name 为 nil 则找任何的 UIKBKeyView（可以用他的 .superview 来找到整个键盘View，做更多的处理）。<br/><a href="HTTP://WWW.Yonsm.NET/attachment.php?fid=44" target="_blank"><img src="HTTP://WWW.Yonsm.NET/attachment.php?fid=44" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><br/>下面是 iPhone 数字键盘的前面10个按键（后面忘了打出来了：）<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>Found View: UIPeripheralHostView<br/>Found View: UIKeyboardAutomatic<br/>Found View: UIKeyboardImpl<br/>Found View: UIKeyboardLayoutStar<br/>Found View: UIKBKeyplaneView<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-1&nbsp;&nbsp;representedString=1&nbsp;&nbsp;displayString=1&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-2&nbsp;&nbsp;representedString=2&nbsp;&nbsp;displayString=2/ABC&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-3&nbsp;&nbsp;representedString=3&nbsp;&nbsp;displayString=3/DEF&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-4&nbsp;&nbsp;representedString=4&nbsp;&nbsp;displayString=4/GHI&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row2<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-6&nbsp;&nbsp;representedString=6&nbsp;&nbsp;displayString=6/MNO&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row2<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-7&nbsp;&nbsp;representedString=7&nbsp;&nbsp;displayString=7/PQRS&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row3<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-8&nbsp;&nbsp;representedString=8&nbsp;&nbsp;displayString=8/TUV&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row3<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-9&nbsp;&nbsp;representedString=9&nbsp;&nbsp;displayString=9/WXYZ&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=String&nbsp;&nbsp;displayRowHint=Row3<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=NumberPad-Empty&nbsp;&nbsp;representedString=&nbsp;&nbsp;displayString=&nbsp;&nbsp;displayType=NumberPad&nbsp;&nbsp;interactionType=None&nbsp;&nbsp;displayRowHint=Row4</div></div><br/><br/>代码对 iPad 也有效，当然 Key Name 和&nbsp;&nbsp;Type 不一样，下面是 iPad 数字键盘的Log：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">Found View: UIPeripheralHostView<br/>Found View: UIKeyboardAutomatic<br/>Found View: UIKeyboardImpl<br/>Found View: UIKeyboardLayoutStar<br/>Found View: UIKBKeyplaneView<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-1&nbsp;&nbsp;representedString=1&nbsp;&nbsp;displayString=1&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-2&nbsp;&nbsp;representedString=2&nbsp;&nbsp;displayString=2&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-3&nbsp;&nbsp;representedString=3&nbsp;&nbsp;displayString=3&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-4&nbsp;&nbsp;representedString=4&nbsp;&nbsp;displayString=4&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-5&nbsp;&nbsp;representedString=5&nbsp;&nbsp;displayString=5&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-6&nbsp;&nbsp;representedString=6&nbsp;&nbsp;displayString=6&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-7&nbsp;&nbsp;representedString=7&nbsp;&nbsp;displayString=7&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-8&nbsp;&nbsp;representedString=8&nbsp;&nbsp;displayString=8&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-9&nbsp;&nbsp;representedString=9&nbsp;&nbsp;displayString=9&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Digit-0&nbsp;&nbsp;representedString=0&nbsp;&nbsp;displayString=0&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row1<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Hyphen-Minus&nbsp;&nbsp;representedString=-&nbsp;&nbsp;displayString=-&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Solidus&nbsp;&nbsp;representedString=/&nbsp;&nbsp;displayString=/&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row2<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Colon&nbsp;&nbsp;representedString=:&nbsp;&nbsp;displayString=:&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row2<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Semicolon&nbsp;&nbsp;representedString=;&nbsp;&nbsp;displayString=;&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Left-Parenthesis&nbsp;&nbsp;representedString=(&nbsp;&nbsp;displayString=(&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Right-Parenthesis&nbsp;&nbsp;representedString=)&nbsp;&nbsp;displayString=)&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Primary-Currency-Sign&nbsp;&nbsp;representedString=$&nbsp;&nbsp;displayString=$&nbsp;&nbsp;displayType=DynamicString&nbsp;&nbsp;interactionType=String-Popup<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Ampersand&nbsp;&nbsp;representedString=&&nbsp;&nbsp;displayString=&&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Commercial-At&nbsp;&nbsp;representedString=@&nbsp;&nbsp;displayString=@&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Full-Stop&nbsp;&nbsp;representedString=.&nbsp;&nbsp;displayString=.&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Comma&nbsp;&nbsp;representedString=,&nbsp;&nbsp;displayString=,&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;displayRowHint=Row3<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Question-Mark&nbsp;&nbsp;representedString=?&nbsp;&nbsp;displayString=?&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Exclamation-Mark&nbsp;&nbsp;representedString=!&nbsp;&nbsp;displayString=!&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Apostrophe&nbsp;&nbsp;representedString='&nbsp;&nbsp;displayString=’&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Quotation-Mark&nbsp;&nbsp;representedString="&nbsp;&nbsp;displayString=”&nbsp;&nbsp;displayType=String&nbsp;&nbsp;interactionType=String-Popup&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Delete-Key&nbsp;&nbsp;representedString=Delete&nbsp;&nbsp;displayString=delete&nbsp;&nbsp;displayType=Delete&nbsp;&nbsp;interactionType=Delete&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Return-Key&nbsp;&nbsp;representedString=<br/>interactionType=Return&nbsp;&nbsp;displayRowHint=Row2<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Undo-Key&nbsp;&nbsp;representedString=undo&nbsp;&nbsp;displayString=undo&nbsp;&nbsp;displayType=Command&nbsp;&nbsp;interactionType=Undo&nbsp;&nbsp;displayRowHint=Row3<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=More-Key&nbsp;&nbsp;representedString=More&nbsp;&nbsp;displayString=more&nbsp;&nbsp;displayType=More&nbsp;&nbsp;interactionType=More&nbsp;&nbsp;displayRowHint=Row4<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Unlabeled-Space-Key&nbsp;&nbsp;representedString=&nbsp;&nbsp; displayString=&nbsp;&nbsp;displayType=Space&nbsp;&nbsp;interactionType=Space&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=More-Key&nbsp;&nbsp;representedString=More&nbsp;&nbsp;displayString=more&nbsp;&nbsp;displayType=More&nbsp;&nbsp;interactionType=More&nbsp;&nbsp;displayRowHint=Row4<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Dismiss-Key&nbsp;&nbsp;representedString=Dismiss&nbsp;&nbsp;displayString=Dismiss&nbsp;&nbsp;displayType=Dismiss&nbsp;&nbsp;interactionType=Dismiss&nbsp;&nbsp;<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Shift-Key&nbsp;&nbsp;representedString=Shift&nbsp;&nbsp;displayString=shift&nbsp;&nbsp;displayType=Shift&nbsp;&nbsp;interactionType=Shift&nbsp;&nbsp;displayRowHint=Row3<br/>Found View: UIKBKeyView<br/>&nbsp;&nbsp;name=Shift-Key&nbsp;&nbsp;representedString=Shift&nbsp;&nbsp;displayString=shift&nbsp;&nbsp;displayType=Shift&nbsp;&nbsp;interactionType=Shift&nbsp;&nbsp;displayRowHint=Row3</div></div>
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?514</link>
<title><![CDATA[计划骑自行车环游青海湖]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[游集]]></category>
<pubDate>Sun, 29 Aug 2010 15:37:21 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?514</guid> 
<description>
<![CDATA[ 
	……<br/><br/>有没有网友知道下面两个问题：<br/><br/>1. 10月1～10号那边天气会非常冷么？<br/>2. 那边租的自行车好骑么？我自己有 DAHOO 的 SP8，但这么长距离携带应该多有不便。<br/><br/><iframe width="500" height="500" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=%E6%9D%AD%E5%B7%9E&amp;daddr=%E4%B8%8A%E6%B5%B7+to:%E8%A5%BF%E5%AE%81+to:%E8%A5%BF%E6%B5%B7%E9%95%87+to:109%E5%9B%BD%E9%81%93+to:109%E5%9B%BD%E9%81%93+to:%E7%8E%AF%E6%B9%96%E8%A5%BF%E8%B7%AF+to:%E8%A5%BF%E5%A4%A7%E8%A1%97+to:310%E7%9C%81%E9%81%93+to:%E6%9D%AD%E5%B7%9E&amp;hl=zh-CN&amp;geocode=FdnvzQEdcWwpBymZqppDKbZLNDE66E2Cg9G_pw%3BFfSK3AEdlIc9BykzPPWxQHCyNTGhZMMjlBKVAg%3BFX27LgIdIAMRBilJZgikXIFNNjGkG1GZ95af7g%3BFSn1MwIdnpsDBin3DuturlxNNjGmuG4PB_hHCw%3BFTF4LQIdLzYABg%3BFfZyMAIdZHvyBQ%3BFZkYNQId9DLyBQ%3BFbCWOQId7ub3BQ%3BFfYoNAId2KoDBg%3BFdnvzQEdcWwpBymZqppDKbZLNDE66E2Cg9G_pw&amp;mra=ls&amp;sll=36.721274,101.151123&amp;sspn=5.168125,9.063721&amp;ie=UTF8&amp;ll=36.791691,100.280457&amp;spn=1.099749,1.370544&amp;t=h&amp;z=9&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=%E6%9D%AD%E5%B7%9E&amp;daddr=%E4%B8%8A%E6%B5%B7+to:%E8%A5%BF%E5%AE%81+to:%E8%A5%BF%E6%B5%B7%E9%95%87+to:109%E5%9B%BD%E9%81%93+to:109%E5%9B%BD%E9%81%93+to:%E7%8E%AF%E6%B9%96%E8%A5%BF%E8%B7%AF+to:%E8%A5%BF%E5%A4%A7%E8%A1%97+to:310%E7%9C%81%E9%81%93+to:%E6%9D%AD%E5%B7%9E&amp;hl=zh-CN&amp;geocode=FdnvzQEdcWwpBymZqppDKbZLNDE66E2Cg9G_pw%3BFfSK3AEdlIc9BykzPPWxQHCyNTGhZMMjlBKVAg%3BFX27LgIdIAMRBilJZgikXIFNNjGkG1GZ95af7g%3BFSn1MwIdnpsDBin3DuturlxNNjGmuG4PB_hHCw%3BFTF4LQIdLzYABg%3BFfZyMAIdZHvyBQ%3BFZkYNQId9DLyBQ%3BFbCWOQId7ub3BQ%3BFfYoNAId2KoDBg%3BFdnvzQEdcWwpBymZqppDKbZLNDE66E2Cg9G_pw&amp;mra=ls&amp;sll=36.721274,101.151123&amp;sspn=5.168125,9.063721&amp;ie=UTF8&amp;ll=36.791691,100.280457&amp;spn=1.099749,1.370544&amp;t=h&amp;z=9" style="color:#0000FF;text-align:left">查看大图</a></small><br/><br/>我们计划6天环湖，每天60公里。应该轻松的的。
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?513</link>
<title><![CDATA[关于 魅族 M9 的消息]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[网文]]></category>
<pubDate>Thu, 19 Aug 2010 12:32:05 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?513</guid> 
<description>
<![CDATA[ 
	太平洋上的 M9 参数列表：<br/><a href="http://product.pconline.com.cn/mobile/meizu/215822_detail.html" target="_blank">http://product.pconline.com.cn/mobile/meizu/215822_detail.html</a><br/><br/>魅族M9联通版卖2499不用存话费:<br/><a href="http://www.cnbeta.com/articles/119762.htm" target="_blank">http://www.cnbeta.com/articles/119762.htm</a><br/><br/>iPhone 4热卖M9压力大 下半年新手机展望：<br/><a href="http://mobile.pconline.com.cn/guide/1007/2180633.html" target="_blank">http://mobile.pconline.com.cn/guide/1007/2180633.html</a><br/><br/>Yonsm 点评： 魅族产品的 UI Design 和思路方向，甚好。如果能在联通 iPhone 4上市之前（或+/-半个月内）上市，且如以上所说，我也买一个。
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?489</link>
<title><![CDATA[[2010.8.6] 最便捷的 HTC HERO G3 简体中文 ROM]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[资源]]></category>
<pubDate>Fri, 06 Aug 2010 14:43:57 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?489</guid> 
<description>
<![CDATA[ 
	欢迎使用 Yonsm.NET 定制的 HTC HERO G3 简体中文 ROM OS！希望它能带给您一个全新的完美体验。<br/><br/><br/>一、特性<br/><br/>&nbsp;&nbsp;◎ 基于官方 2.1 内核，完美定制，细致周到。<br/>&nbsp;&nbsp;◎ 配备各种精选工具（在 data&#92;app 中）。<br/>&nbsp;&nbsp;◎ 自动 WIPE，刷机之前无需 WIPE（刷机后 WIPE 一次就是纯净版）。<br/><br/><br/><br/>二、使用<br/><br/>&nbsp;&nbsp;1. 如果您的设备从没刷过 Recovery，请按以下步骤刷入：<a href="http://www.hiapk.com/bbs/viewthread.php?tid=235029" target="_blank">http://www.hiapk.com/bbs/viewthread.php?tid=235029</a><br/><br/>&nbsp;&nbsp;2. 请如果 Recovery 已经准备好。请按严格安装以下步骤操作刷入 ROM：<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;1). 把 ROM 文件复制到 SD 卡。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;2). 关机，然后按住 Home（小房子）启动手机，进入 Recovery 模式。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;3). 在 Recovery 中选择正确的 ROM 文件（ZIP）刷入（无需WIPE，刷入ROM过程中会自动WIPE数据）。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;4). 重新启动即可。<br/><br/>&nbsp;&nbsp;3. 如果刷完之后启用 GPS 没有锅盖信号，则必须重刷 Radio，这里提供最新官方 Radio_Signed_HERO_63.18.55.06O_6.35.15.01.zip，刷入方法同上。<br/><br/><br/>三、问答<br/><br/>&nbsp;&nbsp;■ 如何扩展定制此 ROM？<br/>&nbsp;&nbsp;答：Yonsm.NET 将提供 AnRomCmd，您可以随便看看。编辑 ROM 需要安装 Java 虚拟机（<a href="http://www.java.com/zh_CN/" target="_blank">http://www.java.com/zh_CN/</a>）。<br/><br/>&nbsp;&nbsp;■ 我想精简 ROM 中的程序，怎么做？<br/>&nbsp;&nbsp;答：刷完 ROM 后，WIPE 一次。或者执行“手动编辑 ROM.bat”，然后删除掉不需要的程序即可（如 data&#92;app 中的扩展程序，但至少保留一个文件在此文件夹中）。<br/><br/>&nbsp;&nbsp;■ 我想集成 ROM 外的组件，怎么做？<br/>&nbsp;&nbsp;◎ 执行“整合扩展组件.bat”，就会把 system&#92;* 和 data、* 集成到 ROM 中（****.EXT.zip）。<br/><br/>&nbsp;&nbsp;■ 我应该更新 Radio 吗？<br/>&nbsp;&nbsp;答：推荐更新这里提供的最新官方稳定 Radio，如果没有 GPS 信号（俗称锅盖），或者只有锅盖但不能定位成功，请重刷 Radio。<br/><br/>&nbsp;&nbsp;■ ROM 中的“凯立德”不能使用？<br/>&nbsp;&nbsp;答：只有程序，没有数据。请参看以下网站下载数据到 SD 卡的“NaviOne”文件夹中：<a href="http://www.hiapk.com/bbs/viewthread.php?tid=61304" target="_blank">http://www.hiapk.com/bbs/viewthread.php?tid=61304</a><br/> <br/>&nbsp;&nbsp;■ ROM 中的“维基百科”不能使用？<br/>&nbsp;&nbsp;答：首先必须重装这个软件（请从 ROM 中解压出来，以便重装此软件）；然后下载数据到 SD 卡的“WikiDroyd/zh”文件夹中：<a href="http://books.wikidroyd.com/4wg8kj" target="_blank">http://books.wikidroyd.com/4wg8kj</a><br/><br/>&nbsp;&nbsp;■ 这个 ROM 没有启动声音？<br/>&nbsp;&nbsp;答：是的，如果需要启动声音，请打开文件 system&#92;customize&#92;CID&#92;default.xml，把注释掉的 <!--audio="/system/customize/resource/android_audio.mp3"--> 打开。<br/><br/>六、致谢<br/><br/>&nbsp;&nbsp;◎ 感谢 Sense 的部分 ROM 参考。 <br/>&nbsp;&nbsp;◎ 感谢各位作者提供的 ROM 定制工具和相关资源。<br/>&nbsp;&nbsp;◎ 感谢您的测试结果和建议报告（如果有的话）。<br/>&nbsp;&nbsp;◎ 感谢您使用本 ROM（如果您使用的话）。<br/><br/><br/>七、许可<br/><br/>&nbsp;&nbsp;◎ 本人未持有 ROM 及其中的软件的版权，请以研究和学习为目的，合法使用。<br/>&nbsp;&nbsp;◎ 如果您根据我提供的方法以及工具修改了 ROM，建议继续公开和分享您的工作成果。<br/>&nbsp;&nbsp;◎ 本人特此申明对 ROM 之使用不提供任何保证，不对任何用户保证本 ROM 的适用性，不保证无故障产生；亦不对任何用户使用此 ROM 所遭遇到的任何理论上的或实际上的损失承担责任。<br/>&nbsp;&nbsp;◎ 如果您使用本软件，即表示已经默认接受了此协议。<br/><br/><br/>八、历史<br/><br/>&nbsp;&nbsp;■ 2.1.2 之前更新的更新日志不再记录。<br/><br/>&nbsp;&nbsp;■ 2010.06.11 2.1.2<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;基于官方发布的 2.1 内核，终于稳定、流畅了。<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;升级部分软件，修改不分配置。<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;去除部分软件。<br/><br/>&nbsp;&nbsp;■ 2010.06.12 2.13<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;集成最新 Radio 到 ROM 中。<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;把 Superuser.apk 和 Maps.apk、VoiceSearch.apk 从 data&#92;app 移动到 system&#92;app 中。（方便刷机后 WIPE 得到纯净版）<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;调整修改 QQ 桌面图标的小错误。<br/><br/>&nbsp;&nbsp;■ 2010.06.12 2.14<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;更新 libgps.so 支持凯立德。<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;修改部分文件，更加省电稳定。<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;修改默认桌面图片。<br/><br/><span style="color: #FF0000;"><br/>&nbsp;&nbsp;■ 2010.07.31 2.15<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;更新了一些软件：地图、文件管理、大众点评、本地通、凯立德（凯立德终于能用了）。<br/>&nbsp;&nbsp; ◎&nbsp;&nbsp;更新了 Radio 包（单独版本，不在 ROM 中）。<br/></span><br/><br/>Yonsm<br/>Yonsm@163.com<br/><a href="http://WWW.Yonsm.NET" target="_blank">WWW.Yonsm.NET</a><br/>2010.07.31，杭州<br/><br/>FOR MY JANE, FOR MY DREAM...<br/><br/><br/><br/>Yonsm<br/>Yonsm@163.com<br/><a href="http://WWW.Yonsm.NET" target="_blank">WWW.Yonsm.NET</a><br/>2010.07.31，杭州<br/><br/>FOR MY JANE, FOR MY DREAM...<br/><br/><br/><br/>论坛讨论：<br/><a href="http://www.hiapk.com/bbs/thread-82758-1-1.html" target="_blank">http://www.hiapk.com/bbs/thread-82758-1-1.html</a><br/><a href="http://www.goapk.com/viewthread.php?tid=9917" target="_blank">http://www.goapk.com/viewthread.php?tid=9917</a><br/><a href="http://www.androidin.net/bbs/viewthread.php?tid=45162" target="_blank">http://www.androidin.net/bbs/viewthread.php?tid=45162</a><br/><br/><br/><br/> <span style="color: #FF0000;"><br/>稳定版本：2.1.5，解压缩，刷入里面的 HERO.Yonsm.2.1.5.zip 即可。<br/></span><br/><br/><a href="/big/HERO.Yonsm.2.1.5.rar">点击这里下载文件</a><br/><br/><br/>以下图片为截图，由于版本更新，实际可能有所出入：<br/><a href="HTTP://WWW.Yonsm.NET//big/HERO.Yonsm.gif" target="_blank"><img src="HTTP://WWW.Yonsm.NET//big/HERO.Yonsm.gif" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="500"/></a>
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?511</link>
<title><![CDATA[[网文]韩寒主编杂志《独唱团》今日全国上市]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[网文]]></category>
<pubDate>Tue, 06 Jul 2010 04:09:19 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?511</guid> 
<description>
<![CDATA[ 
	<div class="quote"><div class="quote-title">引用</div><div class="quote-content">核心提示：韩寒主编杂志《独唱团》今日将在全国上市。为防止串货，每本杂志背后都印有地区标码，可以视为当地的“限量版”。同济大学副教授王晓渔表示，不一定会去看，但是一定会去买，在经济上表示支持。从某种意义上说，这本杂志一出生就已风华正茂。</div></div><br/><br/>更多内容：<a href="http://news.163.com/10/0706/01/6ASF7TMO00014AED.html" target="_blank">http://news.163.com/10/0706/01/6ASF7TMO00014AED.html</a><br/>官方网店：<a href="http://shop57860513.taobao.com/" target="_blank">http://shop57860513.taobao.com/</a>
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?510</link>
<title><![CDATA[八大看点 苹果iPhone 4升级详解]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[网文]]></category>
<pubDate>Tue, 08 Jun 2010 02:07:03 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?510</guid> 
<description>
<![CDATA[ 
	http://www.cnbeta.com/articles/113214.htm<br/><br/><a href="http://www.cnbeta.com/articles/113195.htm" target="_blank">http://www.cnbeta.com/articles/113195.htm</a><br/><br/>
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?509</link>
<title><![CDATA[MacBook Pro 静电？]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[日志]]></category>
<pubDate>Sun, 23 May 2010 10:35:50 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?509</guid> 
<description>
<![CDATA[ 
	<a href="http://www.google.com/search?q=MacBook+Pro+静电" target="_blank">http://www.google.com/search?q=MacBook+Pro+静电</a><br/><br/>亲身感受是震得强烈，但只是偶尔，如果说是身上的静电，也能解释通──不过都抱怨着么多年了，没弄点什么改进措施，无论如何也确实是问题。
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?508</link>
<title><![CDATA[PLCMD - iPhone/iPad IPA 程序名称批量修改工具（PLIST 命令行编辑器）]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[资源]]></category>
<pubDate>Wed, 19 May 2010 06:35:53 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?508</guid> 
<description>
<![CDATA[ 
	iPhone/iPad 下的图标在iTunes中竟然不能改名，看着五花八门的名字都不爽。网上找找也没有很好的工具来整理 IPA 程序名。（weiphone 有个 Rename 支持在 iPhone 内改名，但直接修改的是Info.plist，非完美支持多语言显示，也不支持预先修改IPA文件。不过当然也不错了）<br/><br/>这里基于 CoreFoundation 自己做了个 PLED，用法如下：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>PLED 1.0 - PList EDitor<br/>Copyright (C) Yonsm 2010, All rights reserved.<br/><br/>Usage: PLED &#123;File&#125; &#123;Name&#125; &#123;Value&#125; [/b[inary]]<br/><br/>File 是文件名称<br/>Name 是plist中的KeyName<br/>Value 就是值了<br/>/b 参数指定输出的文件格 bplist 格式（二进制plist），对于 IPA 修改，建议加上这个参数。<br/><br/>活用一下，顺便还有一个功能，就是把 bplist 保存为 XML 格式的 plist，随便写点东西进去，不加 /b 参数就是XML输出了。输出XML后可以调用 EmEditor 之类的编辑，完成后再次 用 /b 改写一下 plist 又变成 bplist 了。<br/><br/></div></div><br/><br/>完整版本包括源代码请参看：<a href="http://www.yonsm.net/read.php?507" target="_blank">http://www.yonsm.net/read.php?507</a><br/><br/><hr/><br/><br/>基于上面的 PLED，做了个PLCMD，支持修改 IPA 文件内部的<span style="color: #FF0000;">程序名称</span>为IPA的<span style="color: #FF0000;">文件名称</span> 。<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>PLCMD [IPA/DIR] [LANG]<br/><br/>第一个参数可以是 IPA 文件或者 文件夹（将处理里面的所有 IPA 文件）。<br/>第二个参数是语言（如“zh_CN”），如果省略,将写入 Info.plist（影响所有语言）。<br/><br/>您也可以在资源管理器中直接拖动 IPA 或者 文件夹 到当前批处理文件上。<br/><br/>请按任意键继续. . .<br/></div></div><br/><br/>使用方法：预先把某个目录内所有的 IPA 文件命名为为“程序名称.ipa”这种格式，然后拖动文件夹到 批处理文件上（或者在命令行中加入第二个参数 zh_CN，以便生成的plist只对中文有效，不影响多语言）。<br/><br/>文件名可以是“iPhone.程序名称.ipa”的格式，会自动提取“程序名称”几个字，截掉扩展和前导的部分（也可以没有前导的部分）。<br/><br/>注意：必须越狱后装了 IPA 破解补丁（hackulo.us 的 AppSync）的设备才能使用修改过的 IPA 文件。<br/><br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/><br/>D:&#92;>D:&#92;Projects&#92;PLCMD&#92;Release&#92;PLCMD&#92;PLCMD "D:&#92;Mobile Applications" zh_CN<br/><br/>程序名称: iBooks.app<br/>显示名称：书籍<br/>修改文件: Payload&#92;iBooks.app&#92;zh_CN.lproj&#92;InfoPlist.strings<br/>PLED 1.0 - PList EDitor<br/>Copyright (C) Yonsm 2010, All rights reserved.<br/><br/>Set CFBundleDisplayName to 书籍: Done<br/><br/>回写文件：Payload&#92;iBooks.app&#92;zh_CN.lproj&#92;InfoPlist.strings<br/><br/><br/>程序名称: Night Stand HD.app<br/>显示名称：夜钟<br/>修改文件: Payload&#92;Night Stand HD.app&#92;zh_CN.lproj&#92;InfoPlist.strings<br/>PLED 1.0 - PList EDitor<br/>Copyright (C) Yonsm 2010, All rights reserved.<br/><br/>Set CFBundleDisplayName to 夜钟: Done<br/><br/>回写文件：Payload&#92;Night Stand HD.app&#92;zh_CN.lproj&#92;InfoPlist.strings<br/><br/><br/>程序名称: AccuWXCirrus.app<br/>显示名称：天气<br/>修改文件: Payload&#92;AccuWXCirrus.app&#92;zh_CN.lproj&#92;InfoPlist.strings<br/>PLED 1.0 - PList EDitor<br/>Copyright (C) Yonsm 2010, All rights reserved.<br/><br/>Set CFBundleDisplayName to 天气: Done<br/><br/>回写文件：Payload&#92;AccuWXCirrus.app&#92;zh_CN.lproj&#92;InfoPlist.strings<br/><br/><br/>……<br/></div></div><br/><br/>上面这么多废话，总结为两句话：<br/><span style="font-size: 14px;"><br/><span style="color: #FF0000;">1. 把所有的 IPA 改名为和程序名称一致的文件名，如：“谷歌搜索.ipa”。<br/>2. 把“谷歌搜索.ipa”（或者所在的文件夹）拖动到 PLCMD.cmd 文件上。</span><br/></span><br/><br/><br/>懒得自己去写 Zip 处理的代码了，用7ZA+批处理做的，有兴趣可以看看。<br/><br/><a href="big/PLCMD.zip">点击这里下载文件</a><br/><br/>
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?507</link>
<title><![CDATA[CFLite for VC:移植 Core Foundation 到 Visual C++ 中]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[文档]]></category>
<pubDate>Wed, 19 May 2010 06:12:05 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?507</guid> 
<description>
<![CDATA[ 
	Core Foundation 是 Apple 的开源基础组件，提供了各种基础设施，如 PLIST 处理、XML parser、String、Array、Dictionary 等等<br/><br/>在处理 Apple 平台的某些东西（比如处理 Mac OSX、iPhone、iPad 的 plist 文件）的时候可能需要用到 Apple 的 Core Foundation。当然在 Xcode 中可以很轻易使用这些东西（内置的），但在 Win32 中却有些麻烦（有时候可能会在 Windows 下处理点什么）。<br/><br/>网上搜索 CFLite （<a href="http://www.kjams.com/wiki/Code/CFLite" target="_blank">http://www.kjams.com/wiki/Code/CFLite</a>） 可以找到一个网站，精简了 CoreFoundation 并提供了些 DLL l以便在 Win32 中使用它——但，这个东西太老了（2008年的更新），以至于都不支持 binary plist 这些 iPhone 中最常用的 plist 格式的读写。<br/><br/>正好想弄个 iPhone/iPad&nbsp;&nbsp;PLIST 的命令行编辑工具，所以自己移植了一下 Core Foundation。参看附件中的 CFLite 目录：<br/><br/>1. CoreFoundation：头文件，从“<a href="http://www.opensource.apple.com/" target="_blank">http://www.opensource.apple.com/</a>”中下载的 10.6.2 的版本（10.6.3尚未提供）。<br/><br/>2. Redist：运行库，从 iTunes 安装后的“C:&#92;Program Files&#92;Common Files&#92;Apple&#92;Apple Application Support”中打包的运行时DLL。本来想把 Core Foundation 的 C 文件编译一下做成静态库的，折腾了好久没搞定，暂时用用 40M 的庞大的 运行库吧。<br/><br/>3. CoreFoundation.lib，从 Redist&#92;CoreFoundation.dll 中手工制作的LIB文件，制作方法如下：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>&nbsp;&nbsp;1、在 Visuall Studio Command Prompt 执行：&nbsp;&nbsp; <br/>&nbsp;&nbsp;dumpbin&nbsp;&nbsp; /exports&nbsp;&nbsp; CoreFoundation.dll&nbsp;&nbsp; >&nbsp;&nbsp; CoreFoundation.def&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;2、编辑&nbsp;&nbsp; yourdll.def&nbsp;&nbsp; 文件，使之格式与.def文件格式一致。比如：&nbsp;&nbsp; <br/>&nbsp;&nbsp;LIBRARY CoreFoundation&nbsp;&nbsp;<br/>&nbsp;&nbsp;EXPORTS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fn1;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fn2;&nbsp;&nbsp; <br/>&nbsp;&nbsp;3、在命令行执行：&nbsp;&nbsp; <br/>&nbsp;&nbsp;lib&nbsp;&nbsp; /def:CoreFoundationl.def&nbsp;&nbsp; /machine:i386&nbsp;&nbsp; /out:CoreFoundationl.lib<br/></div></div><br/><br/>如果需要其他的DLL中的功能，可以类推。<br/><br/>4. 其他 .h 文件，GNU 兼容的 头文件。<br/><br/>其他的文件是 PLCMD 的东西，PLED.cpp 可以认为是一个 PLIST 读写的 Sample 吧：）<br/><br/><a href="/big/CFLite.zip">点击这里下载文件</a><br/>
]]>
</description>
</item><item>
<link>HTTP://WWW.Yonsm.NET/read.php?505</link>
<title><![CDATA[[转帖]Windows操作系统让我们养成了什么臭毛病]]></title> 
<author>Yonsm &lt;Yonsm@163.com&gt;</author>
<category><![CDATA[网文]]></category>
<pubDate>Sun, 09 May 2010 18:42:51 +0000</pubDate> 
<guid>HTTP://WWW.Yonsm.NET/read.php?505</guid> 
<description>
<![CDATA[ 
	有点意思：）<br/><a href="http://www.cnbeta.com/articles/110636.htm" target="_blank">http://www.cnbeta.com/articles/110636.htm</a><br/><br/>我这前些时间新装的系统，就曾经好好反思了一下过去的习惯。杀毒软件也没装了，裸奔的系统清凉舒服多了（有内裤：Windows 防火墙、Defender、UAC等）──以前一装系统首先启用内置管理员帐户、关闭UAC、防火墙、Defender 等，想想也傻了──不是我傻就是MS傻（不是赚钱或市场方面）。
]]>
</description>
</item>
</channel>
</rss>