??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品激情综合久久,久久夜色精品国产噜噜噜亚洲AV,精品永久久福利一区二区http://www.shnenglu.com/mzty/category/3174.html<a href = "http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html"><font size = 3 >{C++ 基础}<font/></a> <a href = "http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html"><font size = 3 >{C++ 高}<font/></a> <a href = "http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html"><font size = 3 >{C#界面QC++核心(j)法}<font/></a> <a href = "http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html"><font size = 3 >{设计模式}<font/></a> <a href = " http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html"><font size = 3 >{C#基础}<font/></a> zh-cnFri, 20 Feb 2009 03:38:43 GMTFri, 20 Feb 2009 03:38:43 GMT60本博客所有精华随W烦(ch)?/title><link>http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html</link><dc:creator>梦在天(dng)</dc:creator><author>梦在天(dng)</author><pubDate>Thu, 17 Jan 2008 02:14:00 GMT</pubDate><guid>http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html</guid><wfw:comment>http://www.shnenglu.com/mzty/comments/41318.html</wfw:comment><comments>http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/mzty/comments/commentRss/41318.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mzty/services/trackbacks/41318.html</trackback:ping><description><![CDATA[<p><br>ȝQ?a href="http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html"><br><br>http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html</a>  C++高</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html">http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html</a>  C++基础</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html">http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html</a>  C#界面QC++核心(j)法</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html">http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html</a>  设计模式</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/29/20893.html">http://www.shnenglu.com/mzty/archive/2007/03/29/20893.html</a>  64bitQFW3.0随笔分类 </p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/29/20892.html">http://www.shnenglu.com/mzty/archive/2007/03/29/20892.html</a>  windows脚本技?/p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html">http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html</a>  C#基础</p><img src ="http://www.shnenglu.com/mzty/aggbug/41318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mzty/" target="_blank">梦在天(dng)</a> 2008-01-17 10:14 <a href="http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WCFQNet remotingQW(xu)eb service概念http://www.shnenglu.com/mzty/archive/2007/10/24/35068.html梦在天(dng)梦在天(dng)Wed, 24 Oct 2007 09:19:00 GMThttp://www.shnenglu.com/mzty/archive/2007/10/24/35068.htmlhttp://www.shnenglu.com/mzty/comments/35068.htmlhttp://www.shnenglu.com/mzty/archive/2007/10/24/35068.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/35068.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/35068.html今天看到WCFQ说是整合了(jin)Net remotingQW(xu)eb service。。。下面列一下概c(din)?br>
一 WCF
概括地说QW(xu)CFh如下的优势:(x)
    1、统一?br>    前面已经叙述QW(xu)CF是对于ASMXQ?Net RemotingQEnterprise ServiceQW(xu)SEQMSMQ{技术的整合。由于WCF完全是由托管代码~写Q因此开发WCF的应用程序与开发其它的.Net应用E序没有太大的区别,我们仍然可以像创建面向对象的应用E序那样Q利用WCF来创建面向服务的应用E序?br>    2、互操作?br>    ׃WCF最基本的通信机制是SOAPQ这׃证了(jin)pȝ之间的互操作性,即是运行不同的上下文中。这U通信可以是基?Net?Net间的通信?/p>

    可以跨进E、跨机器甚至于跨q_的通信Q只要支持标准的Web ServiceQ例如J2EE应用服务器(如WebSphereQW(xu)ebLogicQ。应用程序可以运行在Windows操作pȝ下,也可以运行在其他的操作系l,如Sun SolarisQHP UnixQLinux{等?/p>

    3、安全与可信?br>WS-SecurityQW(xu)S-Trust和W(xu)S-SecureConversation均被d到SOAP消息中,以用于用戯证,数据完整性验证,数据隐私{多U安全因素?br>在SOAP的header中增加了(jin)WS-ReliableMessaging允许可信赖的端对端通信。而徏立在WS-Coordination和W(xu)S-AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactionsQ?br>    上述的多UWS-Policy在WCF中都l与?jin)支持。对于Messaging而言QSOAP是Web Service的基本协议,它包含了(jin)消息_(d)headerQ和消息?body)。在消息头中Q定义了(jin)WS-Addressing用于定位SOAP消息的地址信息Q同时还包含?jin)MTOMQ消息传输优化机ӞMessage Transmission Optimization MechanismQ?/p>

    4、兼Ҏ(gu)?br>    WCF充分的考虑C(jin)与旧有系l的兼容性。安装WCFq不?x)?jing)响原有的技术如ASMX?Net Remoting。即使对于WCF和ASMX而言Q虽然两者都使用?jin)SOAPQ但ZWCF开发的应用E序Q仍然可以直接与ASMXq行交互?/p>

 

?WebService的运行机?

首先客户端从服务器的到WebService的WSDLQ同时在客户端声UC个代理类(Proxy Class)Q?q个代理c负责与WebService服务器进行Request 和ResponseQ?当一个数据(XML格式的)(j)被封装成SOAP格式的数据流发送到服务器端的时候,׃(x)生成一个进E对象ƈ且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理l束以后再对q个计算l果q行SOAP包装Q然后把q个包作Z个Response发送给客户端的代理c?Proxy Class)Q同样地Q这个代理类也对q个SOAP包进行解析处理,l而进行后l操作?/p>

?.net Remoting

是在DCOM{基上发展v来的一U技术,它的主要目的是实现跨q_、跨语言、穿透企业防火墙Q这也是他的基本特点Q与WebService有所不同的是Q它支持HTTP以及(qing)TCP信道Q而且它不仅能传输XML格式的SOAP包,也可以传输传l意义上的二q制,q得它变得效率更高也更加灵zR而且它不依赖于IISQ用户可以自己开?Development)q|?Dispose)自己喜欢的宿L务器Q所以从q些斚w上来讲WebService其实上是.netemoting的一U特例?/p>

区别Q?/p>

1、Remoting可以灉|的定义其所Z的协议,比如httpQtcp{,如果定义为HTTPQ则与Web Service相同Q但是webservice是无状态的Q用remoting一般都喜欢定义为TCPQ这hWeb ServiceEؓ(f)高效一些,而且是有状态的?/p>

2、Remoting不是标准Q而W(xu)eb Service是标准?/p>

3、Remoting一般需要通过一个WinForm或是Windows服务q行启动Q也可以使用iis部vQ而W(xu)eb Service则必dIISq行启动?/p>

4、在VS.net开发环境中Q专门对Web Service的调用进行了(jin)装Q用h比Remoting方便?/p>

5 net remoting只能应用于MS ?net framework之下Q需要客L(fng)必须安装f(xi)rameworkQ但是WebService是^台独立的Q跨语言Q只要能支持XML的语a都可以)(j) 以及(qing)IK企业防火墙?/p>


来自MSDNQ?a >http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/builddistapp/ASP.NETWebServicesor.NETRemoting-HowtoChoose.mspx?mfr=true

分布式应用程序设计:(x)ASP.NET Web 服务?.NET Remoting

ASP.NET Web 服务偏向?XML Schema cdpȝQ提供具有广泛用范围的跨^台支持的单编E模型?NET Remoting 偏向于运行时cdpȝQ提供较为复杂而且使用范围得多的~程模型。这U本质上的差别是军_使用哪种技术的主要因素。但是,q要考虑很多其他设计因素Q包括传输协议、主E、安全性、性能、状态管理以?qing)对事务的支持等?/p>

传输协议和主E?/p>

管 SOAP 规范q不要求?HTTP 作ؓ(f)传输协议Q但是客L(fng)只能通过 HTTP 讉K使用 ASP.NET Web 服务实现?Web 服务Q因为它?ASP.NET 支持的唯一一U传输协议。服务是通过 IIS 调用的,q在 ASP.NET 的辅助进E?aspnet_wp.exe 中执行?/p>

.NET Remoting 使?zhn)能够在Q何类型的应用E序Q包?Windows H体、托的 Windows 服务、控制台应用E序?ASP.NET 辅助q程Q中灉|地托远E对象。正如前面所qͼ.NET Remoting 提供两个传输信道——TCP ?HTTP。这两个信道都能使用套接字提供Q意发送和接收q程之间的通信?/p>

它还能将 HTTP 信道?IIS ?ASP.NET 辅助q程集成。这一点很重要Q原因有以下几点。首先,它是当客L(fng)h到达时自动启?.NET Remoting 端点的唯一Ҏ(gu)?NET Remoting 线不包括启动远E服务器所需?DCOM cd的服务控制管理器 (SCM)。如果从Lq程中提供远E对象,则需要确保那些进E正在运行。还必须保它们是线E安全的Q例如,U程 A 不能在线E?B 开始关闭进E之后激zd象。如果从 ASP.NET 提供q程对象Q则可以利用 Aspnet_wp.exe 辅助q程Q这h可自动启动又hU程安全的优ѝ第二,?IIS 集成是确保跨q程 .NET Remoting 调用的唯一途径Q如下一节所q?/p>

ASP.NET Web 服务?.NET Remoting 基础l构都是可扩展的。?zhn)可以qo(h)入站和出站消息,从多斚w控制cd送和元数据的生成。?.NET RemotingQ还能实现?zhn)自己的格式化E序和信道?

安全?/p>

׃ ASP.NET Web 服务依赖?HTTPQ因此它们与标准?Internet 安全性基l构盔R成。ASP.NET 利用 IIS 的安全性功能,为标?HTTP 验证Ҏ(gu)Q包括基本、简要、数字证书,甚至 Microsoft? .NET PassportQ提供了(jin)强有力的支持。(q可以?Windows 集成验证Q但只能用于信Q域中的客L(fng)。)(j)使用可用?HTTP 验证Ҏ(gu)的一个优势在于,无需?Web 服务中更改代码,IIS 是在 ASP.NET Web 服务被调用之前执行验证的。ASP.NET q支持基?.NET Passport 的验证和其他自定义的验证Ҏ(gu)。ASP.NET 支持Z目标 URL 的访问控Ӟq过?.NET 代码讉K安全?(CAS) 基础l构的集成支持访问控制。SSL 可用于确保通信的安全?/p>

管q些标准传输技术对于确?Web 服务相当有效Q但它们只能做到q种E度。在涉及(qing)C同信d中多?Web 服务的复杂情况下Q还得徏立自定义的特D解x案。Microsoft 和其他公司正致力于创Z套安全性规范,该规范将Z SOAP 消息的可扩展性提供消息别的安全性功能。这些规范之一?XML Web 服务安全性语aQWS-SecurityQ,它ؓ(f)消息U别的凭据传输、消息完整性和消息保密定义?jin)框架?/p>

正如上一节所qͼ一般情况下Q?NET Remoting 线不能保跨进E调用的安全。?ASP.NET 托管?IIS 中的 .NET Remoting 端点可以利用 ASP.NET Web 服务可用的所有安全性功能,包括对?SSL 保有线通信的安全性的支持。如果?zhn)正在使用托管在进E中?TCP 信道?HTTP 信道Q而不?aspnet_wp.exeQ,则必自己执行n份验证、授权和保密机制?

另一个要x的安全性问题是Q在不必更改默认安全性策略的情况下,从不完全信Q的环境中执行代码的能力。ASP.NET Web 服务客户端代理可以在q些环境中工作,?.NET Remoting 代理则不能。要从不完全信Q的环境中使用 .NET Remoting 代理Q需要特D的序列化权限。默认情况下Q该权限不会(x)授予?Intranet ?Internet 上下载的代码。如果要在不完全信Q的环境中使用 .NET Remoting 客户端,则需要更改从那些区域中加载的代码的默认安全性策略。当(zhn)从q行于沙(如下载的 Windows H体应用E序Q中的客L(fng)q接到系l时QASP.NET Web 服务是较单的选择Q因Z需要更改安全性策略?/p>

状态管?/p>

默认情况下,ASP.NET Web 服务模型采用无状态的服务l构Q它q不是本能地与来自同一个用L(fng)多个调用相关。另外,客户端每ơ调?ASP.NET Web 服务Ӟ都创Z个新的对象以服务于该h。方法调用完成后Q该对象卌破坏。要l护h之间的状态,可以使用 ASP.NET 面使用的相同技术(例如QSession ?Application 属性包Q,也可以自己实现自定义的解x案?

.NET Remoting 支持许多状态管理选项Qƈ且可能与来自同一个用L(fng)多个调用相关或不相关Q这取决于?zhn)选择的对象生命周期架构。SingleCall 对象是无状态的Q如用于调用 ASP.NET Web 服务的对象)(j)QSingleton 对象׃n所有客L(fng)的状态,客户端激zȝ对象在每个客L(fng)的基上保持状态(带有其生的所有相关的可升U性和可靠性问题)(j)?/p>

性能

从原始性能斚w来讲Q?TCP 信道和二q制格式化程序时Q?NET Remoting 线能够提供最快的通信。在我们q行的比?ASP.NET Web 服务?.NET Remoting 的相Ҏ(gu)能的几乎所有的试中,ASP.NET Web 服务在性能上都出?jin)?HTTP ?TCP 信道?SOAP 格式化程序的 .NET Remoting 端点。更有意思的是,使用二进制格式化E序?HTTP 信道?ASP.NET ?.NET Remoting 端点在性能上非常相q。(更多信息Q请参见 Performance Comparison:NET Remoting vs. ASP.NET Web Services。)(j)

企业服务

ASP.NET Web 服务或通过 .NET Remoting 提供的对象可以用本C务根据单个数据库协调工作。如果需要根据多个资源协调工作,可以使用 .NET 企业服务Q又U?COM+Q公布的事务Q由 COM+ 线理?DTC 分布式事务)(j)。但要注意的是,ASP.NET Web 服务?.NET Remoting 线都不能传播公布的事务Q因此两U端炚w不可能通过跨进E的调用l承公布的事务?/p>

q不一定是件坏事。一般来Ԍ公布的事务比本地事务代h(hun)要高Q而要跨进E传播公布的事务Q则代h(hun)?x)更高。如果确实需要这一功能Q简单的解决Ҏ(gu)是在 .NET 企业服务的服务器应用E序中部|一个从 System.EnterpriseServices.ServicedComponent z的类Q更多信息,请参?COM+ Integration:How .NET Enterprise Services Can Help You Build Distributed ApplicationsQ。对该类对象的跨q程调用?DCOM q行处理Q以保正确传播事务环境。较隄解决Ҏ(gu)是用底层的 APIQ手动传播分布的事务?/p>

值得注意的是Q传l的分布式事务模型一般不适用于松散耦合?Web 服务。基于补偿事务的模型Q即Q撤消其他事务所提交工作的事务)(j)更有意义Q因为其隔离U束条gq不是很严格。在包括 Microsoft ?Web 服务供应商中有一U普遍的说法Q即 Web 服务I间需要的事务模型灵z,该空间中q行的工作越多。等到定义出 Web 服务事务的标准方法时Q?zhn)可以根据情况用本地或公布的事务实现自q补偿架构?jin)?/p>

 



虽然 .NET Remoting 基础l构?ASP.NET Web 服务都可以进行跨q程通信Q但每种设计适用于不同的用户。ASP.NET Web 服务提供?jin)简单的~程模型Qƈhq泛的用范围?NET Remoting 提供?jin)较为复杂的~程模型Q而且使用范围H得多。请务必?jin)解q两U技术的工作原理Qƈ选择适合(zhn)应用程序的技术。在L一U情况下Q都要?IIS ?ASP.NET 理q程生命周期Qƈ提供一般的安全性?/p>


 



梦在天(dng) 2007-10-24 17:19 发表评论
]]>
Framework3.0基础入门http://www.shnenglu.com/mzty/archive/2007/03/29/20895.html梦在天(dng)梦在天(dng)Thu, 29 Mar 2007 13:46:00 GMThttp://www.shnenglu.com/mzty/archive/2007/03/29/20895.htmlhttp://www.shnenglu.com/mzty/comments/20895.htmlhttp://www.shnenglu.com/mzty/archive/2007/03/29/20895.html#Feedback1http://www.shnenglu.com/mzty/comments/commentRss/20895.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/20895.html
FrameWork2.0Q?br>o_2.0.gif


FrameWork3.0Q?br>
o_netfx30.gif

比较二者,我们可以看到3.0?.0增加?个部分,分别是:(x)WPFQW(xu)CFQW(xu)WF和W(xu)CSQ下面用一句话单解释之?br>WPFQ(适用于不同用L(fng)面的l一Ҏ(gu)QWPF 为所有用L(fng)面提供一致的技术基Q包括,从而大q简化了(jin)开发h员的工作。WPF 采用更ؓ(f)C的方法,支持视频、动甅R?nbsp; 二维或三l图形以?qing)各U类型的文档Q从而可以让用户以全新的方式处理信息?br>WCFQ(支持面向服务的应用程?/strong>Q有?WCFQ开发h员不必再像从前一P处理每一c通信都要使用C同的应用E序~程接口技?Q?WCF 以通用的API 提供通用的方法。在 .NET Framework 3.0 环境下,大多C用以前的例如ASP.NET Web Q?NET RemotingQEnterprise ServicesQW(xu)eb Services Enhancements (WSE){的应用E序会(x)代而?WCF?br>WWFQ(支持Z工作的应用E序Q提供了(jin)适用?Windows 的通用工作技术,W(xu)WF 已成为所有基于工作流应用E序的统一创徏基础。Microsoft ?Microsoft Office 2007 pȝ、Windows SharePoint Services {YӞ以及(qing)许多其他公司的应用程序也?x)?WF?br>WCSQ(一致的数字标识用户控gQ简化用L(fng)讉K标识Q增强安全?br>
?FrameWork3.0的安装及(qing)开?br>  安装?qing)开发:(x)
    o_1335440.jpg
 
  从上囑֏以看到我们可以安装net FrameWork 3.0 在三中系l上Q?QVista 上默认安装; 2Qwindows xp + sp2 Q?Qwindows server 2003 + R2.
  具体的安装过E如下:(x)
1) Install Window XP Service Pack 2 or Windows Vista or Server 2003 Service Pack 1
2) Install Visual Studio 2005
3) Install .Net Framework 3.0 ( If Possilble install full redistruable package of X86 (.Net Framework)
4) Download and install Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation)
5) Download and install Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF).

 对于FrameWork3.0的开发,如果我们按照上面的步骤安装,目前我们可以直接用VS 2005开?.0的Application?jin)?br>
?nbsp;参?br>    
     http://www.microsoft.com/china/MSDN/library/netFramework/netframework/intronetfx30.mspx?mfr=true


梦在天(dng) 2007-03-29 21:46 发表评论
]]>
64bitQFW3.0随笔分类http://www.shnenglu.com/mzty/archive/2007/03/29/20893.html梦在天(dng)梦在天(dng)Thu, 29 Mar 2007 13:26:00 GMThttp://www.shnenglu.com/mzty/archive/2007/03/29/20893.htmlhttp://www.shnenglu.com/mzty/comments/20893.htmlhttp://www.shnenglu.com/mzty/archive/2007/03/29/20893.html#Feedback1http://www.shnenglu.com/mzty/comments/commentRss/20893.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/20893.html64位编E:(x)Q用VS2005QX64指AMD64bitQ还有Intel的安?4bitQ?br>
windows 64 位技?-概述Q一Q?/font>
windows64位技?-微Y64位品(二)(j)
windows 64位技?-C/C++?4位移??
windows64位技?--.NET FrameWork代码?4位移植及(qing)与Native代码的交互(四)(j)



FrameWork3.0~程Q(WCFQW(xu)PF 。。。)(j)

Framework3.0基础入门

梦在天(dng) 2007-03-29 21:26 发表评论
]]>
windows64位技?--.NET FrameWork代码?4位移植及(qing)与Native代码的交互(四)(j)http://www.shnenglu.com/mzty/archive/2006/12/12/16335.html梦在天(dng)梦在天(dng)Tue, 12 Dec 2006 12:40:00 GMThttp://www.shnenglu.com/mzty/archive/2006/12/12/16335.htmlhttp://www.shnenglu.com/mzty/comments/16335.htmlhttp://www.shnenglu.com/mzty/archive/2006/12/12/16335.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/16335.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/16335.html.NET FrameWork代码?4位移植及(qing)与Native代码的交?/p>

一 .NET Framework代码的移?/p>

     使用.NET Framework的各U语a~写的代码,通过各种语言对应的编译器Q最后都生成为IL中间语言代码Q而这样中间语a?/p>

与CPU的架构无关的Q当IL中间语言在各UCPU上面的执行时才生成Native的CPU直接执行的指令。IL代码是在CLR通用语言q行时中?/p>

行的Q所以我们也U?NET Framework~写的代码ؓ(f)Managed托管代码。正是由?NET Framework的这U运行机Ӟ使得?NET

Framework~写的代码,几乎不用改写代码可以移植到64位系l上?/p>

1) 大部分存在的托管应用无需重新~译Q便可以直接?2位和64位上工作?br>2) ?2位系l上的pe文g格式在新?4位中E有改变Q表CZpe+?br>3) Framework 1.0Q?.1的代码作?2位在64位的WOW64上运行,Framework 2.0的代码在64位上作ؓ(f)64位直接运行?br>4) 如果是只有托代码,则可以编译ؓ(f)Any cpu (q有x86Qx64Qipf),可以在x86Qx64Qipf上运行?/p>

 

?托管代码与Native代码的互调用的移?/p>

    1)32位和64位的代码不能在同一q程中执?Q由于可以用的内存大小不同Q所使用的页文g大小不同?br>    2)如果?2位和64位的互调用,则统一都移植ؓ(f)64位?br>    3)也可以通过q程外互操作实现32位和64位的互调用?br>    4)几种互操作实现技术:(x)COM依赖QWin32依赖Q用代理进E技术(dllhost.exeQ?/p>

?32位在64位上的执?/p>

 像我们的32位系l上可以执行16位的E序一P?4位的pȝ上也提供?jin)向后兼?2位程序。在64位的pȝ上用WOW64?/p>

供对32位的支持Q但是不再支?6位程序的q行。大部分32位应用程序能够运行在WoW64中,h在原生Windows 32位上几乎相同?/p>

Ҏ(gu)?br>    1)WoW64如何工作:WoW64?2位应用程序截取系l调? 转变?4位模? ?2位数据结构{换ؓ(f)64位对齐结?发出原生64位系

l调??4位系l调用写回Q何输出数?q回?2位模式?br>   2) 囄WOW64的调用和执行q程Q?br>
   o_64bit42.JPG
上图用过E,下面是执行过E:(x)
o_64bit41.JPG

最后大家好q!有兴的可以l箋学习(fn)sql?4位移植,在微软的webcast|站?/p>

梦在天(dng) 2006-12-12 20:40 发表评论
]]>
windows 64位技?-C/C++?4位移??http://www.shnenglu.com/mzty/archive/2006/12/07/16101.html梦在天(dng)梦在天(dng)Thu, 07 Dec 2006 11:34:00 GMThttp://www.shnenglu.com/mzty/archive/2006/12/07/16101.htmlhttp://www.shnenglu.com/mzty/comments/16101.htmlhttp://www.shnenglu.com/mzty/archive/2006/12/07/16101.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/16101.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/16101.html
 1  开发工P(x)VS2005
    1Q安装:(x)如果在X86上安装Visual Stdio 2005 QVS2005Q,安?2位的2.0 CLR。如果在X64上安装VS2005Q将安装32位和64位的2.0的CLR,在IPFQ安腾)(j)的系l上不能安装VS2005Q因为VS2005?2位的Q在X64位上Q他q行在WOW64上。如果你安装的VS2005的professional版本Q可以选择安装X64lgQ这样可以用此版本~写X64的程序,如果你的VS是运行在64位的操作pȝ上,你就可以直接q行调试?br>q行X64的程序,否则在本Z只能~译Q不能调试和q行。如果你安装的是VS2005的Team版,你可以选择安装X64和IPFlgQ同样如?br>你的VS是运行在X64位上Q你也可以直接调试和q行?br> 2Q配|solution属性(q里C++Q:(x)选择菜单~译->配置理,如下Q?br>  o_64bit31.JPG
  next
o_64bit32.JPGnexto_64bit33.JPG

 
3 Q编译。我们可以在X86或X64上编译X64或IPF代码Q跟我们~译以前的X86代码没有什么大的区别。但是有几个专门?4位用的~译
选项Q常见的例如Q?/Wp64) :(g)?4兼容问题Q?(/GL):链接时性能优化。。?br>
4Q调试和q行Q必dX64和IPF上运行和调试他们对应的程序,但是也可以在X86上编译然后通过q程在X64和IPF上调试代码?br>
 2  Platform SDK +  Visual C++ 2005 Express Edition 

 Windows Server 2003 64-bit Edition Platform SDK是一套开?4位应用的命o(h)行开发包。用开发包中的工具Q可是(zhn)立d?4?br>的应用开发?a >For ITANIUM 2 下蝲  For XEON 下蝲  Visual C++2005 Express
(参考英文:(x)http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx)
(参考中文:(x)http://msdn2.microsoft.com/zh-cn/library/ms235626(VS.80).aspx)

 3  常用工具Q?

?C/C++UL的问?br>
1 新的数据cd和函?br>1)固定_ֺQ(跟X86或X64无关Q?br>
Term Description
DWORD32 32-bit unsigned integer
DWORD64 64-bit unsigned integer
INT32 32-bit signed integer
INT64 64-bit signed integer
LONG32 32-bit signed integer
LONG64 64-bit signed integer
UINT32 Unsigned INT32
UINT64 Unsigned INT64
ULONG32 Unsigned LONG32
ULONG64 Unsigned LONG64
2)q_相关
Term Description
DWORD_PTR Unsigned long type for pointer precision.
HALF_PTR Half the size of a pointer. Use within a structure that contains a pointer and two small fields.
INT_PTR Signed integer type for pointer precision.
LONG_PTR Signed long type for pointer precision.
SIZE_T The maximum number of bytes to which a pointer can refer. Use for a count that must span the full range of a pointer.
SSIZE_T Signed SIZE_T.
UHALF_PTR Unsigned HALF_PTR.
UINT_PTR Unsigned INT_PTR.
ULONG_PTR Unsigned LONG_PTR.
3) q_相关指针
Term Description
POINTER_32 A 32-bit pointer. On 32-bit Windows, this is a native pointer. On 64-bit Windows, this is a truncated 64-bit pointer.
POINTER_64 A 64-bit pointer. On 64-bit Windows, this is a native pointer. On 32-bit Windows, this is a sign-extended 32-bit pointer.

Note that it is not safe to assume the state of the high pointer bit.




2 指针的截?br>
在以前的32位系l中Q指针的?2位,在新?4位系l中指针?4位,q样的话Q我们以前编E中常用的指针与int或long{的直接转化Q放在新?4位的pȝ中就?x)出错,指针高位的值就?x)丢失,从而生错误。例如下面的2行代码,?2位上正确Q但是在64位上׃(x)发生指针截断Q出现错误:(x)
o_64bit36.JPG

下面是我们用新的动态数据类型,从而实C用修改代码,直接?2位和64位上直接~译Q?br>
o_64bit37.JPG


3 虚拟地址I间 Q解x法:(x)?4位的指针中只不用高32位,也就{于原来32位中?2位指针了(jin)Q?br>?2位的pȝ中,一共可以是用的内存?G,但是对于用户的应用一般只可以使用2G,其他?G为系l用,当然你也可以打开3G的开养Iq样的话最多就能?G.对于高精度的点q算Q高强度的数据库处理{,需要更大的内存Q这时?4位给我们带来?jin)福韻I?4位上我们最多可以?6T的内存,q样大大提高了(jin)性能。但是对于一些没有用到过2G的内存,但当中却大量的用了(jin)指针与整型等的强制{化的应用E序Q我们可以用一U简单的Ҏ(gu)Q用编译器的开关VBSQ?Largeadressaware:noQ32位的E序UL?4位上。但是这U简单的ULҎ(gu)Q会(x)带来一些弊端:(x)如果被真?4位所调用Q就有可能真的生指针的截断Q同时也没有解决寚w问题和大内存的用问题?br>
4 数据cd寚w和补?br>
׃对于不同的cpu架够有不同的数据寚w{列Q而且数据的对齐也影响E序的性能和正性。常用的2个宏QTYPE_ALIGNMENT(type)和FIELD_OFFSET(type,member)分别用来计算指定cd的对齐值和某复合变量中成员的偏U量。对于复合数据类型,采用递归的计方法。对于复合数据类型如果没有对齐,则补齐,保证l尾处地址是该复合数据cd的整数倍。(在C++中可以?Program()来设|对齐方式)(j)

5 CPU架构与对齐意?br>对于我们以前?2位,CPU自动解决寚w问题Q在X64中CPU也会(x)处理寚w问题Q但是有性能消耗,但是对于IPF则C(j)PU没有处理数据的对齐问题,所以如果程序中没有处理Q则?x)导致程序Crash。所以最后是我们?4~程中程序处理对齐问题,在程序中使用__aligned_mallocQ这样也更有利于在不同的64位架够间的移植?br>
6 优化Ҏ(gu)
使用~译器的优化选项来优?4E序Qwhole program optimization  ,profile-guided optimization.




对于C++?4位移植,主要的问题就是指针的截断和数据的寚wQ希望从现在开始我们就L良好的习(fn)惯,使用动态指针类型,和程序处理数据的对其问题Q这h有利于程序的64位移植?img src ="http://www.shnenglu.com/mzty/aggbug/16101.html" width = "1" height = "1" />

梦在天(dng) 2006-12-07 19:34 发表评论
]]>
windows64位技?-微Y64位品(二)(j)http://www.shnenglu.com/mzty/archive/2006/12/05/16027.html梦在天(dng)梦在天(dng)Tue, 05 Dec 2006 13:15:00 GMThttp://www.shnenglu.com/mzty/archive/2006/12/05/16027.htmlhttp://www.shnenglu.com/mzty/comments/16027.htmlhttp://www.shnenglu.com/mzty/archive/2006/12/05/16027.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/16027.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/16027.html
o_64windows1.JPG

2 微Ywindows操作pȝ中,windows Xp只有X86和X64版,没有IPFQ安腾)(j)版。但是server端的pȝ既有X64也有IPF的,可见以后微Y?x)增?nbsp;  对server?4位的支持。下面是使用64位的server 2003的优点:(x)(在X64位的XPpȝ上,仍然使用的是32位的officeQ不行你可以看资源管理器中后面带?32的啊Q但是有些程序是区分32?4位版本的啊,他的32位就不能?4位上使用?jin)啊Q例如ACAD 2008 ?2位版本你׃能安装到X64位的Xppȝ上?

o_64windows2.JPG

3 对于开发工具VS2005 Qvs2005 只能?2位上使用Q不能在IPF上用,但是我们可以?2位上开发X86QX64和IPF的程序,微Y和大部分都认为我们一般不?x)在server端开发程序,因ؓ(f)IPF?4位架构是定位server端的。(只有team版的vs2005才可以开发IPF的程序,安装的时候要注意啊,另外netframework也是有X86QX64QIPF区别的啊Q下载的时候要注意啊)(j)

o_64windows4.JPG

4 对于数据库SQL 2005各个版本都有。但是SQL 2000微Y没有提供X64位的Q因为那是X64位技术还没有出现Q因为IPF技术比X64位早出现Q所以SQL 2000也支?IPF架构?br>
o_64windows5.JPG

5 88 下次再见?img src ="http://www.shnenglu.com/mzty/aggbug/16027.html" width = "1" height = "1" />

梦在天(dng) 2006-12-05 21:15 发表评论
]]>
windows 64 位技?-概述Q一Q?/title><link>http://www.shnenglu.com/mzty/archive/2006/12/04/15992.html</link><dc:creator>梦在天(dng)</dc:creator><author>梦在天(dng)</author><pubDate>Mon, 04 Dec 2006 15:15:00 GMT</pubDate><guid>http://www.shnenglu.com/mzty/archive/2006/12/04/15992.html</guid><wfw:comment>http://www.shnenglu.com/mzty/comments/15992.html</wfw:comment><comments>http://www.shnenglu.com/mzty/archive/2006/12/04/15992.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mzty/comments/commentRss/15992.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mzty/services/trackbacks/15992.html</trackback:ping><description><![CDATA[1 两种64位架构:(x)X64是直接在原有的X86的基上的扩展Q而IPF是新开发的高性能?4位指令集?br><br><img style="WIDTH: 653px; HEIGHT: 407px" height=407 alt=o_64bit1.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit1.JPG" width=653 border=0><br><br>2 原来?2位程序在两种64位架构上的运行:(x)在X64上直接运行,而在IPF上由中间层{化,中间转化层要消耗cpu{?br><br><img style="WIDTH: 644px; HEIGHT: 393px" height=393 alt=o_64bit2.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit2.JPG" width=644 border=0><br><br>3两种64位的应用领域不同QX64位客L(fng)和桌面等一般的E序QIPF安腾用于server企业{?br><br><img style="WIDTH: 638px; HEIGHT: 305px" height=305 alt=o_64bit5.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit5.JPG" width=638 border=0><br><br>4 原来?2位与新的64位的主要区别 Q内存和cpu?br><br><img style="WIDTH: 645px; HEIGHT: 461px" height=461 alt=o_64bit4.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit4.JPG" width=645 border=0><br><br>5 新的64位的架构仍然可以q行大部分的?2位程序,但是下面q些必须升?4位?br><br><img style="WIDTH: 642px; HEIGHT: 280px" height=280 alt=o_64bit7.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit7.JPG" width=642 border=0><br><br>6  新的64位的模块与原有的32位模块间不可以直接调用,但是可以通过一定的分装处理后,可以调用?br><br><img style="WIDTH: 648px; HEIGHT: 322px" height=322 alt=o_64bit3.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit3.JPG" width=648 border=0><br><br>7 UL计划Q不多语a的代码,UL的难度ƈ不Ş同,非托的代码相对要复杂,需要考虑指针法字符寚w{,托管的相对要单些Q只需要考虑Ҏ(gu)的互操作{?br><br><img style="WIDTH: 654px; HEIGHT: 297px" height=297 alt=o_64bit8.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit8.JPG" width=654 border=0><br><br>8 单的UL步骤Q?Q?Q?Q?Q??br><br><img style="WIDTH: 640px; HEIGHT: 304px" height=304 alt=o_64bit9.JPG src="http://www.shnenglu.com/images/cppblog_com/mzty/2021/o_64bit9.JPG" width=640 border=0><br><br>9 不断的学?fn),与微软共同进步,thanks<br><br><img src ="http://www.shnenglu.com/mzty/aggbug/15992.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mzty/" target="_blank">梦在天(dng)</a> 2006-12-04 23:15 <a href="http://www.shnenglu.com/mzty/archive/2006/12/04/15992.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.idigest.com.cn" target="_blank">ھƷۺϾþþ40p</a>| <a href="http://www.gmxd.net.cn" target="_blank">鶹wwwþ</a>| <a href="http://www.xiewanliang.cn" target="_blank">ƷþþþóѶ </a>| <a href="http://www.wyj448.cn" target="_blank">޹˾þۺҰ</a>| <a href="http://www.91share.com.cn" target="_blank">þþþþþ޾Ʒ</a>| <a href="http://www.dafa888da.cn" target="_blank">99þֻƷ</a>| <a href="http://www.bwgwdl.cn" target="_blank">þAv뾫Ʒϵ</a>| <a href="http://www.easecorp.com.cn" target="_blank">þˬˬƬav</a>| <a href="http://www.dnf-video.cn" target="_blank">ձƷþþþĻ</a>| <a href="http://www.frsmb.cn" target="_blank">Ʒþþһ</a>| <a href="http://www.z5u5.cn" target="_blank">޹Ʒþþ</a>| <a href="http://www.vhxz.cn" target="_blank">ɫۺϾþ</a>| <a href="http://www.rcjmwj.com.cn" target="_blank">þþþӰԺ</a>| <a href="http://www.huishou399.cn" target="_blank">þøŮ߳MBA</a>| <a href="http://www.r7c1.cn" target="_blank">Ʒ99þþƷ</a>| <a href="http://www.lskcop.cn" target="_blank">Ʒþˬ</a>| <a href="http://www.80008000.cn" target="_blank">ӰԺ˾þ</a>| <a href="http://www.focuan.cn" target="_blank">þӰԺۺϾƷ</a>| <a href="http://www.510dpw.cn" target="_blank">þ޵Ӱ</a>| <a href="http://www.xysrsks.cn" target="_blank">99þ99þþƷƬ</a>| <a href="http://www.mynyf8.cn" target="_blank">þˬˬˬ</a>| <a href="http://www.g8360.cn" target="_blank">þþƷ</a>| <a href="http://www.mir155.cn" target="_blank">ƷŮþþm</a>| <a href="http://www.fnhihs.cn" target="_blank">ĻþòҰav</a>| <a href="http://www.marsit.cn" target="_blank">þþƷҹɫA</a>| <a href="http://www.ejectorpin.cn" target="_blank">þŮƷƷ</a>| <a href="http://www.88830.com.cn" target="_blank">ŷպþAV</a>| <a href="http://www.showfans.com.cn" target="_blank">þۺ</a>| <a href="http://www.gay2000.cn" target="_blank">ٸþĻ </a>| <a href="http://www.domino111.com.cn" target="_blank">þþþAV</a>| <a href="http://www.huodiba.cn" target="_blank">99þѹػ</a>| <a href="http://www.ixdsw.cn" target="_blank">ŷ츾þþþþò </a>| <a href="http://www.x6844.cn" target="_blank">þþƷһ</a>| <a href="http://www.dgz123.cn" target="_blank">ƷþþþĻձ</a>| <a href="http://www.gbtu.cn" target="_blank">99þùں;Ʒ1ӳ</a>| <a href="http://www.carswg.cn" target="_blank">þþۺϾɫۺ̾</a>| <a href="http://www.c-c-city.com.cn" target="_blank">߳߳þþ91</a>| <a href="http://www.zhoupeng520.cn" target="_blank">Ʒ999þþþþĻ</a>| <a href="http://www.zqdiary.cn" target="_blank">Ʒþۺ</a>| <a href="http://www.haolepay.cn" target="_blank">þþƷĻ̾</a>| <a href="http://www.0771008.cn" target="_blank">ŷAŷaþ </a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>