<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_sopper</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/15800/rss</id><updated>2011-02-23T04:12:24Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/15800/rss"/><entry><id>http://www.cnblogs.com/sopper/archive/2010/12/09/va.html</id><title type="text">Visual Assist X设置  转</title><summary type="text">Visual Assist X的用法open file in solution 打开文件中的解决办法open Corresponding file 打开相应文件list methods in current file 列表方法在当前文件file symbol 文件标记find references 找到参考资料find references in file 找到参考文件clone find references results 寻找克隆结果find previous by context 找到以前的前后关系goto implementation转到执行refactor重构paste粘贴inse</summary><published>2010-12-09T10:04:00Z</published><updated>2010-12-09T10:04:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2010/12/09/va.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2010/12/09/va.html"/><content type="html">&lt;p&gt;&lt;span&gt;&lt;img style="width: 580px; height: 352px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/f8655913cf35eef5c2fd781f.jpg" width="580" height="352" small="0"  alt="" /&gt;&lt;br /&gt;&lt;span&gt;&lt;img style="width: 580px; height: 359px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/0f0b2a81c3f221ec9023d919.jpg" width="580" height="359" small="0"  alt="" /&gt;&lt;br /&gt;&lt;span&gt;&lt;img style="width: 580px; height: 351px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/2425afc311a9a80ee4dd3b1a.jpg" width="580" height="351" small="0"  alt="" /&gt;&lt;br /&gt;&lt;span&gt;&lt;img style="width: 580px; height: 501px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/b6827053e4ee5f350df3e31b.jpg" width="580" height="501" small="0"  alt="" /&gt;&lt;br /&gt;&lt;span&gt;&lt;img style="width: 580px; height: 501px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/4cab548e5d9bb9d5f11f36e6.jpg" width="580" height="501" small="0"  alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;img style="width: 580px; height: 234px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/fc638d23389a0d9f4723e8e7.jpg" width="580" height="234" small="0"  alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;img style="width: 580px; height: 361px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/dda51702fd5e8dd709fa93e0.jpg" width="580" height="361" small="0"  alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;img style="width: 580px; height: 362px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/d4161625edb221088644f9e1.jpg" width="580" height="362" small="0"  alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;img style="width: 580px; height: 353px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/eeaf61ca21089bc653664fe1.jpg" width="580" height="353" small="0"  alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;img style="width: 580px; height: 355px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/0dc230a3a3271c96caefd0e2.jpg" width="580" height="355" small="0"  alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;img style="width: 580px; height: 359px"  border="0" src="http://hiphotos.baidu.com/i%B5%AB%B6%A1/pic/item/bc3a98f1c2e282f87831aae3.jpg" width="580" height="359" small="0"  alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt"  align="center"&gt;&lt;span&gt;&lt;font size="3" face="Verdana"&gt;Visual Assist X的用法&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;open file in solution &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;打开文件中的解决办法&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;open Corresponding file &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;打开相应文件&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;list methods in current file &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;列表方法在当前文件&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;file symbol &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;文件&lt;/span&gt;&lt;span style="font-size: 12pt"&gt;标记&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;find references &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;找到参考资料&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;find references in file &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;找到参考文件&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;clone find references results &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;寻找克隆结果&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;find previous by context &lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;找到以前的&lt;/span&gt;&lt;span style="font-size: 12pt"&gt;前后关系&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;goto implementation&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;转到执行&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="color: red"&gt;&lt;font size="2" face="Verdana"&gt;refactor&lt;/font&gt;&lt;/span&gt;&lt;span style="color: red; font-size: 12pt"&gt;重构&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;paste&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;粘贴&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;font size="2"&gt;&lt;span&gt;&lt;font face="Verdana"&gt;insert VA snippet &lt;/font&gt;&lt;/span&gt;&lt;span&gt;插入&lt;/span&gt;&lt;span&gt;&lt;font face="Verdana"&gt;VA&lt;/font&gt;&lt;/span&gt;&lt;span&gt;片段&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="color: red"&gt;&lt;font size="2" face="Verdana"&gt;surround with VA snippet&lt;/font&gt;&lt;/span&gt;&lt;span style="color: red; font-size: 12pt"&gt;环绕与&lt;/span&gt;&lt;span style="color: red; font-size: 12pt"&gt;VA&lt;/span&gt;&lt;span style="color: red; font-size: 12pt"&gt;片段（例如：&lt;/span&gt;&lt;span style="color: blue; font-size: 12pt"&gt;if&lt;/span&gt;&lt;span style="color: blue; font-size: 12pt"&gt;（）&lt;/span&gt;&lt;span style="color: blue; font-size: 12pt"&gt;{}&lt;/span&gt;&lt;span style="color: red; font-size: 12pt"&gt;）&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="color: red"&gt;&lt;font size="2" face="Verdana"&gt;tools&lt;/font&gt;&lt;/span&gt;&lt;span style="color: red; font-size: 12pt"&gt;工具&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;enable/disable visual assist x&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;启用&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;/&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;禁用视觉协助&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;x&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;visual assist x options&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;视觉协助&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;x&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;选项&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;strong&gt;&lt;span style="color: red"&gt;&lt;font size="2" face="Verdana"&gt;refactor&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: red; font-size: 12pt"&gt;重构&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;font size="2"&gt;&lt;span&gt;&lt;font face="Verdana"&gt;add member &lt;/font&gt;&lt;/span&gt;&lt;span&gt;新增成员&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;add similar member&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;添加类似的&lt;/span&gt;&lt;font size="2"&gt;&lt;span&gt;成员&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;font size="2"&gt;&lt;span&gt;&lt;font face="Verdana"&gt;create declaration &lt;/font&gt;&lt;/span&gt;&lt;span&gt;创建&lt;/span&gt;&lt;span&gt;报单（声明）&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;create implementation&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;建立执行（实施）&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;font size="2"&gt;&lt;span&gt;&lt;font face="Verdana"&gt;add include&lt;/font&gt;&lt;/span&gt;&lt;span&gt;添加包括&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;changs signature&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;改变签字&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;change visibility&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;改变能见度&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;document method&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;文件方法&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;encapsulate field&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;封装字段&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;extract method&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;提取方法&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;move implementation to source file&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;移动执行源文件&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span&gt;&lt;font size="2" face="Verdana"&gt;rename&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;重命名&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;strong&gt;&lt;span style="color: red; font-size: 12pt"&gt;&lt;font face="Verdana"&gt;tools&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: red; font-size: 12pt"&gt;工具&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="color: red; font-size: 10.5pt"&gt;&lt;font face="Verdana"&gt;VA outline -VA&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;大纲&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="font-size: 12pt"&gt;&lt;font face="Verdana"&gt;VA View -VA&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;视图&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="font-size: 12pt"&gt;&lt;font face="Verdana"&gt;find references results&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;寻找参考资料的结果&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="font-size: 12pt"&gt;&lt;font face="Verdana"&gt;spell check&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;拼写检查&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="font-size: 12pt"&gt;&lt;font face="Verdana"&gt;sort selected lines&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;排序选定线&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="font-size: 12pt"&gt;&lt;font face="Verdana"&gt;reparse current file&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt;重当前文件&lt;/span&gt;&lt;span style="color: black; font-size: 12pt"&gt; &#xD;
&lt;div &gt;&#xD;
&lt;p&gt;ReSharper是一款微软Visual Studio .NET 的插件，提供了智能C#辅助编码功能和实时错误显示功能，并支持重构。ReSharper为C#开发人员提供许多能够有效提高生产力的功能，这些功能已被 成千上万使用IntelliJ IDEA的Java程序员所采用&lt;/p&gt;&#xD;
&lt;p&gt;ReSharper是为Microsoft Visual Studio .NET这一流行的开发平台提供的插件,功能是提供流行C#代码智能帮助,高亮度显示实时纠错以及重新参数化等功能。ReSharper 为C#开发者提供许多强力的提高生产力的能力，世界上成千上万的Java开发者已经越来越依靠这一智能技术。ReSharper为C#开发人员提供了许多 强有力的特性，极大地提高了开发效率。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;font color="#ff0000"&gt;程序特色如下:&lt;/font&gt; &lt;br /&gt;1.语法错误高亮显示 &lt;br /&gt;2.搜索 &lt;br /&gt;3.代码助手 &lt;br /&gt;4.自动更正 &lt;br /&gt;5.活动模板 &lt;br /&gt;6.代码格式化 &lt;br /&gt;7.重构 &lt;br /&gt;8.代码生成 &lt;br /&gt;9.其它特征 &lt;br /&gt;10.代码导航 &lt;br /&gt;11.代码完成&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/sopper/aggbug/1901527.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sopper/archive/2010/12/09/va.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sopper/archive/2010/08/06/1794246.html</id><title type="text">mac入门系列教程之二–-Mac与众不同（4） 转</title><summary type="text">摘之MacFav我们继续说说 Mac 的与众不同，本文所指的按纽请参考 mac入门系列教程之二&amp;#8211;-Mac与众不同（3） 内的插图窗口管理Mac OSX 系统较为喜欢同时只打开一个 Finder 窗口。如果你的 Finder 当前显示的是文件夹 A 的内容，里面包含 B 这个子文件夹，如果你双击文件夹 B，这时候不会新开一个新的 Finder 窗，而是会在原来的窗口里显示文件夹 B 的内...</summary><published>2010-08-06T08:20:00Z</published><updated>2010-08-06T08:20:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794246.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794246.html"/><content type="html">&lt;p&gt;摘之MacFav&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;我们继续说说 Mac 的与众不同，本文所指的按纽请参考&lt;/strong&gt; &lt;a title="Permanent Link to mac入门系列教程之二&amp;#8211;-Mac与众不同（3）" href="http://www.macfav.com/?p=175" rel="bookmark"&gt;&lt;span style="color: #000000"&gt;&lt;strong&gt;mac入门系列教程之二&amp;#8211;-Mac与众不同（3）&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; &lt;strong&gt;内的插图&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;p&gt;&lt;strong&gt;窗口管理&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Mac OSX 系统较为喜欢同时只打开一个 Finder 窗口。如果你的 Finder 当前显示的是文件夹 A 的内容，里面包含 B 这个子文件夹，如果你双击文件夹 B，这时候不会新开一个新的 Finder 窗，而是会在原来的窗口里显示文件夹 B 的内容。那你这时怎么回到显示文件夹 A 呢？你有以下几种做法：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;按 Finder 工具栏左边的左三角（代表 back）&lt;/li&gt;&lt;li&gt;选择 GO 菜单里的 Back&lt;/li&gt;&lt;li&gt;使用快捷键 Command-[ (左中括号)&lt;/li&gt;&lt;li&gt;使用快捷键 Command-&amp;#8220;上方向&amp;#8221; &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;span id="more-191"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;那如果你是想新开一个 Finder 窗来方便在两个文件夹间拷贝文件呢？你可以用以下方法新开 Finder 窗：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;选择 Finder 菜单里的 &amp;#8220;New Finder Window&amp;#8221; ，或用快捷键 Command-N 。需要注意的是新开的窗默认会显示你的 Home 目录内容，如果要改变这个默认显示的目录，可以到 Finder-&amp;gt;Preferences-&amp;gt;General 内找到相关的选项。&lt;/li&gt;&lt;li&gt;按住 Command 键再双击目标文件夹或磁盘&lt;/li&gt;&lt;li&gt;进入菜单 Finder-&amp;gt;Preferences，然后勾选 Always open folders in a new window。这样以后你只要双击文件夹，就会新开一个 Finder 窗口。&lt;/li&gt;&lt;li&gt;还有最后一招就是按窗口右上角的&amp;#8220;传统风格切换&amp;#8221;按纽，这时侧栏和工具栏就会消失，双击文件夹会新开一个 Finder 窗口，这就是所谓的Finder的传统模式。另外你可以通过快捷键 Option-Command-T 来启用，再按一次这个快捷键会恢复到原来的模式。在其他的软件（比如 Mail 和 Preview 你也会看到窗口右上角同样的按纽），按这个按纽也会把工具栏收起来。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;窗口大小拖放&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在窗口最右下角的那几个条纹其实是一个窗口大小的拖放按纽，只要你按住鼠标不放然后拖动，就可以改变窗口的长和宽（和 Windows 一样）。但是，记住在 Mac 里不可以像 Windows 一样只拖动窗口的右边框或下边框来改变窗口的长和宽的。&lt;br /&gt;&#xD;
&lt;p&gt;&lt;strong&gt;路径条&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你选择 View-&amp;gt;Show Path Bar，你就会看到 Finder 下面会出现一个工具条，它显示了当前文件夹的全路径图标，这些图标很有用，你可以双击任意一级的上级目录来跳转过去，或者右击它们显示出菜单，又或者甚至往它们里面拖放文件。&lt;br /&gt;&#xD;
&lt;p&gt;&lt;strong&gt;状态条&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;很简单，这里会显示当前目录有多少个图标（比如&amp;#8220;14 items&amp;#8221;）和磁盘剩余的总空间。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;术语对照&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这里为大家列一下 Mac 和 Windows 系统里面的一些术语对照，对大家在熟悉 Mac OSX 的时候会有很大帮助。&lt;/p&gt;&#xD;
&lt;p&gt;Mac(Windows) 以下括号内为 Windows 的术语：&lt;/p&gt;&#xD;
&lt;p&gt;System Preferences(Control Panel)&lt;br /&gt;Widget(Gadget)&lt;br /&gt;Pop-up Menu(Drop-Down Menu)&lt;br /&gt;Application(Program)&lt;br /&gt;Get Info(Properties)&lt;br /&gt;Trash(Recycle Bin)&lt;br /&gt;Spotlight(Search Command)&lt;br /&gt;Aliases(Shortcuts)&lt;br /&gt;Dashboard(Sidebar)&lt;br /&gt;Dock(TaskBar)&lt;br /&gt;Menulets(Tray(notification area))&lt;br /&gt;Finder(Windows Explorer)&lt;br /&gt;System folder(Windows Folder)&lt;br /&gt;&#xD;
&lt;p&gt;&lt;strong&gt;好了，到这里为止入门教程中的 &amp;#8220;Mac与众不同&amp;#8221; 已经完成！！&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;预告：接下来的文章我们会深入一些细节的讲解，比如 Finder, Dock, Windows, Files, Icons, Spotlight等等 Mac OSX 的组成部分，敬请各位读者留意 ：）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;待续。。。。欲知后事如何，请听下回分解～&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sopper/aggbug/1794246.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794246.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sopper/archive/2010/08/06/1794244.html</id><title type="text">mac入门系列教程之二–-Mac与众不同（3） 转</title><summary type="text">摘之MacFav窗口控制和 Windows 一样，在 Mac 里面的窗口都有着各种各样的按纽，但只要你用过 mac 后你会发现苹果的 UI 设计师是多么的高明，苹果不愧为业界最强的 UI 设计公司。下面我们来看看 Mac 里面窗口的各种按纽：点击放大标题栏在图上我没有标出标题栏，其实它就是 &amp;#8220;Jay Mac&amp;#8221; 这个字以及和他同一水平线的空白处。你可以从窗口的标题栏判断出这个...</summary><published>2010-08-06T08:19:00Z</published><updated>2010-08-06T08:19:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794244.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794244.html"/><content type="html">&lt;p&gt;摘之MacFav&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a title="Permanent Link to mac入门系列教程之二&amp;#8211;-Mac与众不同（3）" href="http://www.macfav.com/?p=175" rel="bookmark"&gt;&lt;font color="#333333"&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;窗口控制&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;和 Windows 一样，在 Mac 里面的窗口都有着各种各样的按纽，但只要你用过 mac 后你会发现苹果的 UI 设计师是多么的高明，苹果不愧为业界最强的 UI 设计公司。下面我们来看看 Mac 里面窗口的各种按纽：&lt;/p&gt;&#xD;
&lt;p style="text-align: center"&gt;&lt;/a&gt;&lt;a href="http://www.macfav.com/wp-content/uploads/2010/01/LittleSnapper.jpg"&gt;&lt;img  title="LittleSnapper" alt="" src="http://www.macfav.com/wp-content/uploads/2010/01/LittleSnapper-300x198.jpg" width="300" height="198" /&gt;&lt;/a&gt;&lt;a title="Permanent Link to mac入门系列教程之二&amp;#8211;-Mac与众不同（3）" href="http://www.macfav.com/?p=175" rel="bookmark"&gt;点击放大&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span id="more-175"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;标题栏&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在图上我没有标出标题栏，其实它就是 &amp;#8220;Jay Mac&amp;#8221; 这个字以及和他同一水平线的空白处。你可以从窗口的标题栏判断出这个窗口是否是当前活跃的窗口，如果是背景窗口（就是被压在下面的窗口）的话，他的标题（也就是例子中的 Jay mac）会比较灰暗，并且窗口最左上角的三个按纽会灰化（除非你把鼠标放在他们三个任何一个上面）。如果是前台窗口，标题是清晰的黑色字，并且三个按纽会是红黄绿三种颜色。你可以不必把背景窗调前就可以使用左上角的三个按纽，也就是说就算某一个窗口不是前台窗口，你也可以马上关闭、最小化或 zoom（我找不到好的中文来形容）它。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;小技巧1：如果你想在同一个程序的不同窗口中切换，可以使用快捷键 Command-`（`是数字键1左边那个键），相信我，这个会是你用得最多的快捷键之一。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你在 Finder 里进入了一个子文件夹，你想回到上一级的文件夹的话，你可以按住 Command 按用鼠标单击上图中的&amp;#8220;文件夹快捷图标&amp;#8221;（原名叫 Folder Proxy icon ）,这样就会弹出一个选单，可以任意跳转到当前文件夹的任意一个上级文件夹中。另外要达到同样的效果还有快捷键可以使用，如果你使用 &amp;#8220;Command-上方向&amp;#8221;，那么你就会在 Finder 中跳转至当前文件夹的上一层，同时如果你想往下一层跳转，你可以使用 &amp;#8220;Command-上方向&amp;#8221;。你可以利用快捷键一直往上一层目录跳转，但需要注意的是，你可能向下一层跳转一次。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;小技巧2：如果你双击标题栏，等同于你按了&amp;#8220;最小化&amp;#8221;的按纽一样。（下面会说到最小化）&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;小技巧3：Option 键表示&amp;#8220;把当前动作应用到所有窗口&amp;#8221;，这里的所有窗口指的是当前程序的所有窗口，并不是所有程序窗口。打个比方，你打开了很多个 Safari 浏览器的窗，如果这时候你按住 Option 并且单击任意一个 Safari 窗左上角的红色关闭按纽，那代表所有打开的 Safari 窗都会同时关闭。不过这个技巧对 Microsoft 的 Office 套件程序无效，囧。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;文件夹快捷图标&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;刚才在标题栏中提到的&amp;#8220;文件夹快捷图标&amp;#8221;其实另有他用，当你点击这个图标并且不放到鼠标过一段时间，这个图标就可以被拖动，这样你在不关闭这个文件夹的情况下就可以移动或拷贝这个文件夹到另一个文件夹、垃圾箱或者 Dock 上。事实上从 Leopard 开始 Dock 上面就有一个 Documents 的快捷图标，如果你不小心把它删掉了，你可以用上面说的方法重新建立它。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;关闭按纽&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;关闭按纽位于窗口最左上角三个按纽的最左边一个，他是一个背景色为红色的按纽，当你的鼠标移动到这三个按纽任意一个上面的时候，你会看到X，-，+这几个符号，X代表了关闭。它的功能和 Windows 里面窗口右上角的功能一样，就是关闭窗口。如果你一时习惯不过来它的位置，你可以学习一个快捷键 &amp;#8220;Command-W&amp;#8221;，它是关闭按纽的快捷方式。但这里需要提醒一下原 Windows 用户，在 Mac 中就算关闭了程序的全部窗口，但这个程序还不算退出了，它仍然留在内存里。那么怎样知道一个程序是否退出呢？最简单的方法就是看 Dock 的图标：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/a&gt;&lt;a href="http://www.macfav.com/wp-content/uploads/2010/01/Google-Chrome.jpg"&gt;&lt;img  title="Google Chrome" alt="" src="http://www.macfav.com/wp-content/uploads/2010/01/Google-Chrome.jpg" width="56" height="175" /&gt;&lt;/a&gt;&lt;a title="Permanent Link to mac入门系列教程之二&amp;#8211;-Mac与众不同（3）" href="http://www.macfav.com/?p=175" rel="bookmark"&gt;看我的 Dock 这四个图标，其中两个程序是关闭状态，两个是开启状态，那到底哪个是开启了的呢？答案就是左手边有个小亮点的就是开启状态的程序。那我们如何退出一个程序而不是仅仅关掉他的窗口呢？当程序在前台的时候你有两种方法：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;mac左上角标记右边的第一个菜单名就是当前程序的名字，你点开它，一般会看到 Quit 的选项，点击 Quit 就可以退出这个程序。&lt;/li&gt;&lt;li&gt;同样需要看到标记右边的第一个菜单名是你想要关闭的程序，这时用快捷键 Command-Q，就可以快速的退出这个程序。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;小技巧：当你在一个程序运行的时候改变了一些内容，比如往文档里写字，这时候你的程序处于未存储的状态，怎么方便区分当前是否是在未存储的状态呢？很简单，看关闭按纽的中心是否有一个黑点，如果是的话，证明你的文档还没有保存，如果关闭按纽是一片血红，嘿嘿，证明当前文档已经保存过了，并且保存后没再动过它。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;题外话：当你用多了 Mac 的快捷键，比如上面所说的 Command-`，Command-W，Command-Q（这三个真的是用得最多的），你会发现 Mac 的设计是如此的人性化，因为你会发现按 Command 来组合快捷键是多省力的一件事，而且 Mac 把最常用的快捷键都放在了左手边，你左手拇指按住 Command ，其他左手手指可以轻而易举的按到`、W或Q。是不是比如 Windows 的 Alt-F4 按起来轻松多了？&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;最小化按纽&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;只要你点一下左上角黄色的最小化按纽，那么这个窗口就会伴随着动画被&amp;#8220;吸&amp;#8221;进 Dock 的右下角，成为一个图标，如果你想把窗口恢复，只要再单击一下这个 Dock 里的图标即可。当然和其他功能一样，它也有快捷键：Command-M。但你有没有想过，如果你最小化的窗口多起来的话 Dock 的图标会越来越挤？没关系，Apple 也想到了这一点，所以在 Snow Leopard 版本里 mac 加了一个选项（在 System Preferences-&amp;gt;Dock里）&amp;#8220;Minimize windows into application icon&amp;#8221;，顾名思义如果这个选项被勾选的话，以后你用最小化功能的时候，系统不会把每个窗口都缩小成一个 Dock 的图标，他会把窗口&amp;#8220;吸&amp;#8221;进程序的 Dock 图标中，这样是不是省位置多了？&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Zoom 按纽&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你是一个刚从 Windows 转过来的 Mac 用户，或者这个 Zoom 按纽会成为你最大的不习惯！常常会有新的 Mac 用户会问，我怎么把 Safari 的浏览器窗口最大化呀？他们指的最大化就是把 Safari 窗口拉大以致填满整个屏幕。但 Mac 里面一般不会这样做，Apple 觉得用户的桌面空间很珍贵，不会动不动就把他填满了，造成切换到其他窗口的多余操作。那这个 Zoom 按纽是做什么用的呢，当你按下它的时候，窗口会放大到一个可以容下所有窗口内容的大小，所以你可以称他为智能放大，比如你有两个不同的网页在 Safari 显示，在一个页面较小的网页切换到较大的网页时，你可以按一下这个绿色的+按纽，Safari 会马上根据较大的这个网页去把窗口放大，大到可以容下这个网页的所有内容为止。最好的办法就是自己亲手去试一下这个按纽咯。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Finder 侧栏&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;侧栏默认存在于每一个 Finder 窗口（&amp;#8220;保存&amp;#8221;与&amp;#8220;打开&amp;#8221;对话框也同样有侧栏），侧栏包含几个部分：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Devices&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这个部分列出了连接到 Mac 的所有存储设备：硬盘、CD、DVD、iPod、记忆卡、U盘等等，如果是可以弹出或移除的设备，在他的图标右边会有一个 Eject 图标，按一下就会从mac中弹出/移除该设备，比如U盘、CD、DVD等。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Shared&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这部分列出了与你在同一个网络的其他共享磁盘，只要对方开放了读取权限，你就可以从这里进入。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Places&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这是侧栏最常用的部分，这里列出来的都是一个文件夹的快捷方式，除了默认的那几个外，你还可以把你想要的文件夹拖放进来，如果你不小心从这里删除了某个文件夹，不要担心，那只是个快捷方式！你点击这里面的图标，Finder 会打开相应的文件夹。你可以拖住某一个图标往外拖放，你会看到鼠标变成一团云一样的东西，这时候你只要放手就会删除掉。如果你不小心删除了系统默认的几个图标，可以通过 Finder 菜单-&amp;gt;Preferences-&amp;gt;Sidebar 去重新勾选你想看到的图标。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;小技巧：当你在 Finder 浏览文件的时候，如果想把某个文件夹拖进 Places 其实很简单，你有两个方法，一是直接把他拖到侧栏的 Places 中去，二是当你选中那个目标文件夹时，用快捷键 Command-T 即可。&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Searches&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这部分看到的&amp;#8220;文件夹&amp;#8221;事实上是一些预设好的搜索条件，比如你如果按 Today，那 Finder 会搜索并显示今天有过变动的所有文件，Yesterday 和 Past Week 等也是同样的道理。另外 All Images, All Movies 和 All Documents 这三个会分别搜索出相应类型的文件。这些预设的搜索十分的有用，但更好的是你可以自定义这样的一些搜索条件，后面我们会再讲到。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;小技巧：如何让侧栏消失呢？有一个快捷键可以做到，Option-Command-S，再按一次侧栏就会重新出现。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;待续。。。。欲知后事如何，请听下回分解～&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sopper/aggbug/1794244.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794244.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sopper/archive/2010/08/06/1794241.html</id><title type="text">mac入门系列教程之二–-Mac与众不同（2） 转</title><summary type="text">摘之MacFav我们接着上一篇，继续说说 Mac 的与众不同。键盘Ctrl 键：mac 的 Ctrl 键和 PC（Windows）的 Ctrl 键不太一样，像上一篇所说的，在 mac 里面 Ctrl 键的主要用途是用来组合鼠标左键来实现右键的效果。在 Mac 里面相当于 Windows Ctrl 键功能的是应该 &amp;#8984;（Command）键。比如在 Windows 里面你会用 Ctrl-S ...</summary><published>2010-08-06T08:17:00Z</published><updated>2010-08-06T08:17:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794241.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794241.html"/><content type="html">&lt;p&gt;摘之MacFav&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们接着上一篇，继续说说 Mac 的与众不同。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;键盘&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Ctrl 键：mac 的 Ctrl 键和 PC（Windows）的 Ctrl 键不太一样，像上一篇所说的，在 mac 里面 Ctrl 键的主要用途是用来组合鼠标左键来实现右键的效果。在 Mac 里面相当于 Windows Ctrl 键功能的是应该 &amp;#8984;（Command）键。比如在 Windows 里面你会用 Ctrl-S 来保存文件，而在 Mac 里你将会用 Command-S。&lt;/p&gt;&#xD;
&lt;p&gt;Alt 键：在 mac 里面也叫 Option 键，在 mac 里面 Option 键算是&amp;#8220;杂项&amp;#8221;键，它主要的功能是启用一些&amp;#8220;秘密&amp;#8221;功能和打出一些&amp;#8220;秘密&amp;#8221;字符。比如，当你按住 Option 键再单击窗口的关闭或最小化按纽时，你会关闭或最小化&lt;em&gt;&lt;strong&gt;全部&lt;/strong&gt;&lt;/em&gt;的窗口。又或者当你按住 Option 键时再按R，G或2，你得到的字符是&amp;#174;，&amp;#169;和&amp;#8482;。（后面再跟大家讲这些特殊字符）&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span id="more-162"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Fn 键：在其他 Windows 的本本大家都应该比较熟悉这个键了，它是用来改变一些键的用处的。比如在键盘最上面的 F1-F12，还有&lt;a href="http://www.macfav.com/?p=130"&gt;&lt;font color="#0088cc"&gt;Fn 键的几个小技巧&lt;/font&gt;&lt;/a&gt;里面说的几个特殊按键。这里说一下如何改变 F1-F12 的默认功能，看图：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.macfav.com/wp-content/uploads/2010/01/System-Preferences2.jpg"&gt;&lt;img  title="System Preferences2" alt="" src="http://www.macfav.com/wp-content/uploads/2010/01/System-Preferences2.jpg" width="439" height="273" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;进入 System Preferences -&amp;gt; Keyboard 后你会看到上图，如果你勾选上了红框内的选项的话，如果你想用F1-F12上面的特殊功能（如显示亮度调整、音量调整、iTunes 控制等）的话，就必须配合 Fn 键使用。如果没有勾选上的话，你只要直接按 F1-F12 就可以得到这些特殊功能。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;磁盘/分区&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在 Windows 里面你看到的是分区，但在 Mac 里面你看到的将会是磁盘。在 Mac 上面你从来不会看到一个空的磁盘会显示出图标，比如只有当你插进一张 CD 到 mac 的时候你才会看到 CD 的名字和按纽出现在桌面上。如果你不想在桌面上看到任何磁盘的图标，你可以像下图一样设置：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.macfav.com/wp-content/uploads/2010/01/Finder2.jpg"&gt;&lt;img  title="Finder" alt="" src="http://www.macfav.com/wp-content/uploads/2010/01/Finder2.jpg" width="228" height="205" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;进入 Finder-&amp;gt;Preferences-&amp;gt;General，你会看到上面几个勾选框，如果你都不想在桌面显示这些图标，把他清空就好，反之亦然。&lt;br /&gt;你可以通过以下几种方法弹出一个磁盘（当然不是硬盘了），磁盘可以理解为 CD，DVD，U盘，共享网盘，iDisk，iPod，虚拟分区（DMG）或外置硬盘：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;按住 Eject 键（只有DVD和CD可以）&lt;/li&gt;&lt;li&gt;在桌面上右击磁盘的图标，然后选择 &amp;#8220;Eject [磁盘名]&amp;#8221;&lt;/li&gt;&lt;li&gt;单击磁盘的图标然后在菜单里选 &amp;#8220;File-&amp;gt;Eject [磁盘名]&amp;#8221;，或者按快捷键 Command-E&lt;/li&gt;&lt;li&gt;把磁盘的图标直接拉进&amp;#8220;垃圾箱&amp;#8221;（你会看到图标变成一个很大的 Eject 标志） &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;你的东西都放哪了？&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你打开主磁盘（Macintosh HD），你只会看到几个文件夹：Applications，Library，System 和 Users。但对于普通用户来说这几个文件夹没有多大用处，你可以把主磁盘当作是操作系统的盘，你只会在很少机会去访问他。事实上，你作为普通用户关心的应该是这些：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Applications 文件夹&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;苹果用 Applications 这个词来表示程序。&lt;br /&gt;当你想管理你的程序的时候，Applications 文件夹（可以通过 Finder 菜单 Go-&amp;gt;Applications）就像是 Windows 里面的 Program Files 文件夹，在 Applications 文件夹里是你所有程序，你可以随意的进去双击任意的程序来执行它。而在 Dock 上的图标只是 Applications 文件夹里面程序的快捷方式。这一个个程序图标事实上是一些 .app 结尾的文件夹，但对于用户来说看到的就像是一个可执行程序，如何找到. app 文件夹里真正的执行程序这些细节就留给 Mac OSX 吧。你可以用以下几个方法进入 Applications 文件夹：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;在 Finder 的菜单选择 Go-&amp;gt;Applications&lt;/li&gt;&lt;li&gt;使用快捷键 Shift-Command-A&lt;/li&gt;&lt;li&gt;在 Finder 的边栏里点击 Home 的图标。如果你看不到 Home 的图标，可以到 Finder 菜单的 Preferences-&amp;gt;Sidebar 的 Places 里然后勾选 Home 的图标。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Home文件夹&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在你的 Home 文件夹里，你会找到一套标准的 mac 文件夹（从他们的图标你就可以看出他们有多重要，都是特殊设计的图标哦），这些文件夹大多数你都可以重命令或甚至删除掉，当然个别除外，下面我们会解释一下这几个文件夹的用处：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Desktop（不可重命名或删除）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这个文件夹里的内容其实就是你在桌面看到的内容，文件夹与桌面有一一对应的关系，你可以试试在桌面创建一个文件，你会发现在 Desktop 文件夹也会出现同一个文件，反之亦然。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Documents&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;苹果公司建议你把你的个人工作文件保存在这个文件夹内，比如你的 keynote ,pages 文档等。你或你的程序可自行在 Documents 文件夹建立新的子文件夹，比如你如果用 Entourage 的话，它会在里面建立一个 Microsoft User Data 的子文件夹。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Library&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这不同于在主磁盘的 Library 文件夹，在主磁盘的 Library 文件夹是用来存放系统级的字体、配置文件、帮助文件等等。在你 Home 目录下的这个 Library 文件夹，是专为你的帐号服务，里面放的是你自己的个性化字体、配置文件等&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Movies, Music, Pictures&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;看名字就知道是用来存放一些多媒体文件的，包括电影、音乐和相片。一些程序如iPhoto, iTunes, iMovie等会默认保存文件到这些文件夹。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Public&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你的 mac 在网络上或与别人共用一台 mac 电脑，这个文件夹是用来存放一些公共文件。比如你想让网络上其他用户或同一台 mac 的其他用户在不需要密码或授权的情况下看到某些文件，最好的办法就是把这些文件拷贝到 Public 文件夹。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Sites&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Mac OSX 内建有 Web 服务端，可以把你的 mac 电脑向局域网或互联网开放成为一个网站。这个内建的 Web 服务端其实就是 Apache Web Server，而你的网页就应该放在 Sites 文件夹。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;System 文件夹&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这个文件夹等同于 PC 里的 Windows 或 WINNT 文件夹，里面存放了操作系统数以百计的关键文件，如果这些文件被删除或重命名的话，你的电脑可能会瘫痪，所以作为用户你最好远离这个文件夹。。。。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;待续。。。。欲知后事如何，请听下回分解～&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sopper/aggbug/1794241.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794241.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sopper/archive/2010/08/06/1794238.html</id><title type="text">mac入门系列教程之二–Mac与众不同（1） 转</title><summary type="text">摘之MacFav呵呵，标题的与&amp;#8220;众&amp;#8221;不同，当然是指的与 Windows 不同，Mac 无论是硬件上还是操作上都和 PC（Windows）有很大的区别，在这篇文章里 Jay 会尝试从几个比较明显的地方来说一下 Mac 的&amp;#8220;与众不同&amp;#8221;。单键鼠标mac 的鼠标一直以来给人的印象就是和 PC 不一样，因为他只有一个键。但现在的 mac 鼠标虽然外观看上去...</summary><published>2010-08-06T08:16:00Z</published><updated>2010-08-06T08:16:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794238.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794238.html"/><content type="html">&lt;p&gt;摘之MacFav&lt;/p&gt;&#xD;
&lt;p&gt;呵呵，标题的与&amp;#8220;众&amp;#8221;不同，当然是指的与 Windows 不同，Mac 无论是硬件上还是操作上都和 PC（Windows）有很大的区别，在这篇文章里 Jay 会尝试从几个比较明显的地方来说一下 Mac 的&amp;#8220;与众不同&amp;#8221;。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span id="more-145"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;单键鼠标&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;mac 的鼠标一直以来给人的印象就是和 PC 不一样，因为他只有一个键。但现在的 mac 鼠标虽然外观看上去是只有一个键，但事实上都含有右键。右键最大的用处我想大家都已经知道了，就是弹出快捷的功能菜单。但即使是只有一个键的 mac 鼠标，仍然可以用一些方法来达到右键的功能。&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;CTRL-Click：只要你在想右击的地方按 ctrl+click 就可以达到右键同样的效果。&lt;/li&gt;&lt;li&gt;本本的触摸板（老方法）：只要用两只手指同时点一下触摸板，就会达到右键的效果。左键的效果当然就是用一只手指啦&lt;/li&gt;&lt;li&gt;本本的触摸板（新方法）：在最新的 mac 本本上，你可以设置新的右键方法，那就是按下触摸板的左下角或右下角（取决于你在系统设置里是如何设置的）。记住不是点表面，而是把触摸板按下去！设置的地方在 &amp;#8220;System Preferences -&amp;gt; Trackpad&amp;#8221; &#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="width: 422px" id="attachment_155" &gt;&lt;a href="http://www.macfav.com/wp-content/uploads/2010/01/System-Preferences1.jpg"&gt;&lt;img  title="System Preferences1" alt="" src="http://www.macfav.com/wp-content/uploads/2010/01/System-Preferences1.jpg" width="412" height="271" /&gt;&lt;/a&gt; &#xD;
&lt;p &gt;Trackpad Preferences&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;重启、关机与休眠&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;关于休眠模式的一些探讨，大家可以看这篇文章：《&lt;a href="http://www.macfav.com/?p=55"&gt;&lt;font color="#0088cc"&gt;Mac OSX的休眠模式浅析&lt;/font&gt;&lt;/a&gt;》&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;进入休眠的方法有几种：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;如果你的是本本，直接把显示器盖上。&lt;/li&gt;&lt;li&gt;选择 -&amp;gt; Sleep，或者使用快捷键 Option-&amp;#8984;-Eject (Eject 就是弹出光驱那个键，通常在键盘最右上角)&lt;/li&gt;&lt;li&gt;按快捷键 CTRL-Eject，然后在弹出的对话框里选择 Sleep（或按 S）。&lt;/li&gt;&lt;li&gt;按一下 mac 电脑的电源按纽，它会弹出和 CTRL-Eject 一样的对话框。&lt;/li&gt;&lt;li&gt;如果你的 mac 有配对的遥控器的话，长按 Play/Pause 键三秒。&lt;/li&gt;&lt;li&gt;潇洒的离开你的 mac，系统的电源管理会在你设定的时间后自动休眠。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;重启：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;事实上你不需要经常重启你的 mac，它不会像 windows 一样长时间不重启就越来越慢，除非你遇到一些解决不了的问题或者安装了系统级的补丁，这时候你才需要重启你的 mac。事实上对 Jay 来说，mac 的本本从来都没关过机，都是合上就走。&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;选择 -&amp;gt; Restart，弹出确认重启的对话框后按 Restart 或回车即可。如果你在选择 Restart 的时候是按住 Option 键的话，那 mac 会马上重启，不会与你确认。&lt;/li&gt;&lt;li&gt;使用快捷键 CTRL-&amp;#8984;-Eject&lt;/li&gt;&lt;li&gt;按快捷键 CTRL-Eject，然后在弹出的对话框里选择 Restart（或按 R）。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;关机：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;当你多于几天不需要使用你的 mac 时，想完全关闭你的 mac 电脑，你可以：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;选择 -&amp;gt; Shut Down，弹出确认重启的对话框后按 Shut Down 或回车即可。如果你在选择 Shut Down 的时候是按住 Option 键的话，那 mac 会马上关机，不会与你确认。&lt;/li&gt;&lt;li&gt;使用快捷键 CTRL-Option-&amp;#8984;-Eject，看上去很多键，你亲自按按就知道没多复杂了。&lt;/li&gt;&lt;li&gt;按快捷键 CTRL-Eject，然后在弹出的对话框里选择 Shut Down（或按回车）。&lt;/li&gt;&lt;li&gt;潇洒的离开你的 mac，如果你设置正确，系统的电源管理会在你设定的时间后自动关机。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;&lt;strong&gt;登出：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你的 mac 是多人共用，那每次你使用完成后最好是登出你的帐号，登出操作很简单：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;选择 -&amp;gt; Log out xxx (xxx 是你的用户名)，弹出确认重启的对话框后按 Log out 或回车即可。&lt;/li&gt;&lt;li&gt;使用快捷键 Shift-&amp;#8984;-Q，弹出确认重启的对话框后按 Log out 或回车即可。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;如果你不想登出，你可以启用 Fast User Switching，这个功能允许一台 mac 上有多个帐号同时处于登陆状态，但只有一个帐号在使用 mac，各个帐号间可以快速的进行切换，无需登出。Fast User Switching 的设置我们在后面会再讲到。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;待续。。。。欲知后事如何，请听下回分解～&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;篇后语：其实这篇文章 Jay 是根据 &lt;a href="http://www.macfav.com/?p=124"&gt;&lt;font color="#0088cc"&gt;《Switching to the Mac: The Missing Manual, Snow Leopard Edition》&lt;/font&gt;&lt;/a&gt; 里面的内容翻译、删减、整理并加上自己的截图注释而成，所以一切归功与这本书的作者，Jay 做的只是让那些不方便看英文或不想看长篇大论只想看精华的同学提供一个方便。由于书的内容很多很多，Jay 只能每次抽一部分出来为大家精减，欲知后事如何，请听下回分解～&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sopper/aggbug/1794238.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sopper/archive/2010/08/06/1794238.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sopper/archive/2010/04/13/1710962.html</id><title type="text">C++带有指针数组的结构体转换为C#可用的结构体</title><summary type="text">带有指针数组的结构体不能直接转换为C#类型的结构体，转换起来有点麻烦先定义出对应C++类型的C#结构体 public struct user_group_t { public int id; public string name; } public struct user_group_list { public int group_array_count; public IntPtr group_...</summary><published>2010-04-13T03:41:00Z</published><updated>2010-04-13T03:41:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2010/04/13/1710962.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2010/04/13/1710962.html"/><content type="html">&lt;p&gt;带有指针数组的结构体不能直接转换为C#类型的结构体，转换起来有点麻烦&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;先定义出对应C++类型的C#结构体&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public struct user_group_t&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public struct user_group_list&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int group_array_count;&lt;/p&gt;&#xD;
&lt;p&gt;public IntPtr group_array;//指向 user_group_t类型的指针&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;泛型函数实现转换功能&lt;/p&gt;&#xD;
&lt;p&gt;public static List&amp;lt;T&amp;gt; MarshalPtrToStructArray&amp;lt;T&amp;gt;(IntPtr p, int count)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;T&amp;gt; l = new List&amp;lt;T&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; count; i++, p = new IntPtr(p.ToInt32() + Marshal.SizeOf(typeof(T))))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T t = (T)Marshal.PtrToStructure(p, typeof(T));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l.Add(t);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return l;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;调用方式&lt;/p&gt;&#xD;
&lt;p&gt;通常C++函数返回一个指向user_group_list类型的指针，在C#中可使用IntPtr ptrGroupList对应指针，&lt;/p&gt;&#xD;
&lt;p&gt;而user_group_list类型结构体内包含的内容是长度为&amp;nbsp;group_array_count，地址为&amp;nbsp;group_array 的数组&lt;/p&gt;&#xD;
&lt;p&gt;因为IntPtr不能如C++的指针一样进行 ptrGroupList++这样的操作，所以要访问其内部成员需要把它转换为数组或list&lt;/p&gt;&#xD;
&lt;p&gt;使用Marshal.PtrToStructure把指向结构体的指针转换为具体的结构体&lt;/p&gt;&#xD;
&lt;p&gt;user_group_list&amp;nbsp;&amp;nbsp; tructList = (user_group_list)Marshal.PtrToStructure(ptrStructGroupList, typeof(user_group_list));&lt;/p&gt;&#xD;
&lt;p&gt;再使用泛型转换函数实现转换&lt;/p&gt;&#xD;
&lt;p&gt;List&amp;lt;user_group_t&amp;gt; listGroupTemp = MarshalPtrToStructArray&amp;lt;user_group_t&amp;gt;(structList.group_array, structList.group_array_count);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;对于list的成员访问，就方便多了&lt;/p&gt;&#xD;
&lt;p&gt;欢迎大家提出更多更方便的转换方式&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sopper/aggbug/1710962.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sopper/archive/2010/04/13/1710962.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sopper/archive/2010/04/13/1710875.html</id><title type="text">C#调用C++版本dll时的类型转换要注意的问题</title><summary type="text">最近使用C#调用C++版本的dll遇到很多类型转换的问题，现记录出容易出错的部分C#对于C++的dll引用时，经常会遇到类型转换和struct的转换1. C++ 里的Char类型是1 个字节，c#里的Char是两个字节，不可以对应使用；可使用c#里的byte对应2. structType temp = (structType)Marshal.PtrToStructure(IntPtr, typeo...</summary><published>2010-04-13T02:26:00Z</published><updated>2010-04-13T02:26:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2010/04/13/1710875.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2010/04/13/1710875.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;最近使用C#调用C++版本的dll遇到很多类型转换的问题，现记录出容易出错的部分&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 20.25pt"&gt;C#&lt;span style="font-family: 宋体"&gt;对于&lt;/span&gt;C++&lt;span style="font-family: 宋体"&gt;的&lt;/span&gt;dll&lt;span style="font-family: 宋体"&gt;引用时，经常会遇到类型转换和&lt;/span&gt;struct&lt;span style="font-family: 宋体"&gt;的转换&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: -18pt; margin: 0cm 0cm 0pt 18pt"&gt;&lt;span&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;C++ &lt;span style="font-family: 宋体"&gt;里的&lt;/span&gt;Char&lt;span style="font-family: 宋体"&gt;类型是&lt;/span&gt;1 &lt;span style="font-family: 宋体"&gt;个字节，&lt;/span&gt;c#&lt;span style="font-family: 宋体"&gt;里的&lt;/span&gt;Char&lt;span style="font-family: 宋体"&gt;是两个字节，不可以对应使用；可使用&lt;/span&gt;c#&lt;span style="font-family: 宋体"&gt;里的&lt;/span&gt;byte&lt;span style="font-family: 宋体"&gt;对应&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -18pt; margin: 0cm 0cm 0pt 18pt" align="left"&gt;&lt;span&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 新宋体; color: #010001; font-size: 9pt"&gt;structType&lt;/span&gt;&lt;span style="font-family: 新宋体; font-size: 9pt"&gt; &lt;span style="color: #010001"&gt;temp&lt;/span&gt; = (&lt;span style="color: #010001"&gt;structType&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;Marshal&lt;/span&gt;.&lt;span style="color: #010001"&gt;PtrToStructure&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;IntPtr&lt;/span&gt;, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #010001"&gt;structType&lt;/span&gt;));&lt;/span&gt;&lt;span style="font-family: 新宋体; font-size: 9pt"&gt;说明：此方式转换只针对包含c++基本类型的结构体，如果包含指针数组的结构体，使用泛型函数比较方便。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -18pt; margin: 0cm 0cm 0pt 18pt" align="left"&gt;&lt;span&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 新宋体; font-size: 9pt"&gt;[&lt;span style="color: #2b91af"&gt;StructLayoutAttribute&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;LayoutKind&lt;/span&gt;.&lt;span style="color: #010001"&gt;Sequential&lt;/span&gt;)]&lt;span style="color: green"&gt; 说明：StructLayoutAttribute &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 新宋体; color: green; font-size: 9pt"&gt;类 使 用户可以控制类或结构的数据字段的物理布局；&lt;/span&gt;&lt;span style="font-family: 新宋体; color: #2b91af; font-size: 9pt"&gt;LayoutKind&lt;/span&gt;&lt;span style="font-family: 新宋体; color: green; font-size: 9pt"&gt;控制当导出到非托管代码时对象的布局。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; text-indent: -18pt; margin: 0cm 0cm 0pt 18pt" align="left"&gt;&lt;span&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 新宋体; font-size: 9pt"&gt;[&lt;span style="color: #2b91af"&gt;MarshalAsAttribute&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;UnmanagedType&lt;/span&gt;.&lt;span style="color: #010001"&gt;LPWStr&lt;/span&gt;)]&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 新宋体; color: green; font-size: 9pt"&gt;指示如何在托管代码和非托管代码之间封送数据；&lt;font size="2"&gt;说明：&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 新宋体; color: #2b91af; font-size: 9pt"&gt;UnmanagedType&lt;/span&gt;&lt;span style="font-family: 新宋体; color: green; font-size: 9pt"&gt;指定如何将参数或字段封送到非托管代码。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20.1pt; word-break: break-all" align="left"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;托管代码&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt; (managed code) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20.1pt; word-break: break-all" align="left"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;　　由&lt;/span&gt;&lt;a href="http://baike.baidu.com/view/159628.htm" target="_blank"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: #3366cc; font-size: 11.5pt"&gt;&lt;span&gt;公共语言运行库&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;环境（而不是直接由操作系统）执行的代码。托管代码应用程序可以获得公共语言运行库服务，例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20.1pt; word-break: break-all" align="left"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;　　托管代码是可以使用&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;20&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;多种支持&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;Microsoft .NET Framework&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;的高级语言编写的代码，它们包括：&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, &lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;以及&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;C++&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;。所有的语言共享统一的类库集合，并能被编码成为中间语言&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;(IL)&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;。运行库编译器（&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;runtime-aware compiler&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;）在托管执行环境下编译中间语言（&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;IL&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;）使之成为本地可执行的代码，并使用数组边界和索引检查，异常处理，垃圾回收等手段确保类型的安全。&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt; &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 20.25pt"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;　　在托管执行环境中使用托管代码及其编译，可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。同样，许多不可靠的设计也自动的被增强了安全性，例如&lt;/span&gt; &lt;a href="http://baike.baidu.com/view/1965709.htm" target="_blank"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: #3366cc; font-size: 11.5pt"&gt;&lt;span&gt;类型安全&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;检查，内存管理和释放无效对象。程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量。这就意味着更短的开发时间和更健壮的程序。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 20.25pt"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: left; line-height: 20.1pt; word-break: break-all" align="left"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;非&lt;/span&gt;&lt;a href="http://baike.baidu.com/view/159896.htm" target="_blank"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: #3366cc; font-size: 11.5pt"&gt;&lt;span&gt;托管代码&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 'Arial','sans-serif'; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt; (unmanaged code) &lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 20.25pt"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;　　在&lt;/span&gt;&lt;a href="http://baike.baidu.com/view/159628.htm" target="_blank"&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: #3366cc; font-size: 11.5pt"&gt;&lt;span&gt;公共语言运行库&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 0.4pt; color: black; font-size: 11.5pt"&gt;环境的外部，由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务；它与托管代码不同，后者从公共语言运行库中获得这些服务。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sopper/aggbug/1710875.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sopper/archive/2010/04/13/1710875.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sopper/archive/2008/10/31/1323519.html</id><title type="text">小技巧</title><summary type="text">我们在工作中经常会遇到这种情况，判断一个对象的状态是false或者true，如果是false则改变其状态为true；如果是true则改变为false，那么你的第一想法是什么？举个例子：两个button，button１和button２，点击一次button１，button２失效；再点击一次button１，button２可用，可反复使用；我的第一想法用代码表示为：在button１的click事件中写入...</summary><published>2008-10-31T03:04:00Z</published><updated>2008-10-31T03:04:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2008/10/31/1323519.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2008/10/31/1323519.html"/></entry><entry><id>http://www.cnblogs.com/sopper/archive/2008/06/24/1228769.html</id><title type="text">瑞星版本20.49.30的Bug</title><summary type="text">版本为20.49.30的瑞星软件与vc６有冲突，造成的问题是vc６不能正常编译，vc６错误提示为：解决办法：１．取消瑞星的开机自运行功能，并且不要运行瑞星２．更新瑞星为其他版本到现在为止笔者还没有发现瑞星与其它软件的冲突现象。</summary><published>2008-06-24T03:29:00Z</published><updated>2008-06-24T03:29:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2008/06/24/1228769.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2008/06/24/1228769.html"/></entry><entry><id>http://www.cnblogs.com/sopper/archive/2008/05/26/1207353.html</id><title type="text">C++控件的数据交换和数据校验</title><summary type="text">MFC采用了独特的DDX和DDV技术。DDX将数据成员变量同对话类模板内的控件相连接，这样就使得数据在控件之间很容易地传输。DDV用于数据的校验，例如它能自动校验数据成员变量数值的范围，并发出相应的警告。在类向导下添加成员变量的过程很简单，需要说明的是。在DDV／DDX技术中，允许用户为同一个控件关联多个数据成员变量，但必须保证这些变量名是互不相同的，且这些变量在同一个类型不能有多个变量，即在Va...</summary><published>2008-05-26T02:49:00Z</published><updated>2008-05-26T02:49:00Z</updated><author><name>sopper</name><uri>http://www.cnblogs.com/sopper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sopper/archive/2008/05/26/1207353.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sopper/archive/2008/05/26/1207353.html"/></entry></feed>
