第6章 Windows程序中的調(diào)用_第1頁(yè)
第6章 Windows程序中的調(diào)用_第2頁(yè)
第6章 Windows程序中的調(diào)用_第3頁(yè)
第6章 Windows程序中的調(diào)用_第4頁(yè)
第6章 Windows程序中的調(diào)用_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于C#的Windows應(yīng)用程序開(kāi)發(fā)實(shí)驗(yàn)與實(shí)踐教程

第1章Windows窗體第2章Windows常用控件的使用第3章創(chuàng)建控件第4章面向?qū)ο缶幊毯?jiǎn)介第5章使用ADO.NET訪問(wèn)數(shù)據(jù)第6章Windows程序中的調(diào)用第7章GDI+的簡(jiǎn)單編程第8章使用CrystalReports創(chuàng)建報(bào)表第9章提高程序的可訪問(wèn)性第6章Windows程序中的調(diào)用第6章Windows程序中的調(diào)用6.1調(diào)用XMLWebService6.2調(diào)用COM組件6.3調(diào)用WindowsAPI6.4小結(jié)6.5習(xí)題6.1調(diào)用XMLWebService幾乎所有的應(yīng)用程序都可以訪問(wèn)XMLWebService,包括其他的XMLWebService、Web應(yīng)用程序、Windows應(yīng)用程序和控制臺(tái)應(yīng)用程序等。唯一的要求是客戶端必須能夠向/從XMLWebService發(fā)送、接受和處理消息。XMLWebService的定義是什么呢?它是為其他應(yīng)用程序提供數(shù)據(jù)和服務(wù)的應(yīng)用程序邏輯單元;是一個(gè)通過(guò)URL可以訪問(wèn)的功能集。XMLWebService的核心特征之一是服務(wù)的實(shí)現(xiàn)和使用之間存在高度的抽象。WebService模型

WebService體系結(jié)構(gòu)基于三種角色之間的交互,分別是:服務(wù)提供者、服務(wù)注冊(cè)中心和服務(wù)請(qǐng)求者。SOAPSOAP(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)是一種基于XML的輕量級(jí)協(xié)議,用于分布式環(huán)境中交換信息。XMLWebService把SOAP作為網(wǎng)絡(luò)通信協(xié)議UDDI任何

客戶端SOAPSOAPXMLWebServiceSOAP網(wǎng)絡(luò)服務(wù)器WSDLWSDL(Web服務(wù)描述語(yǔ)言)根據(jù)Web服務(wù)接收和產(chǎn)生的消息描述它的XML語(yǔ)法。Web服務(wù)使用者和Web服務(wù)之間的協(xié)議。

規(guī)定Web服務(wù)操作(方法)中的類型和每個(gè)操作交換的文檔。在服務(wù)幫助頁(yè)面中可以看到。UDDIUDDI工作原理:第1步,在軟件公司和標(biāo)準(zhǔn)組織定義關(guān)于在UDDI中注冊(cè)的行業(yè)或企業(yè)的規(guī)范時(shí),開(kāi)始向注冊(cè)中心發(fā)布有用的信息。這些規(guī)范叫做技術(shù)模型或者更常見(jiàn)的說(shuō)法是tModel。第2步,公司還會(huì)注冊(cè)關(guān)于其業(yè)務(wù)及其提供的服務(wù)的描述。第3步,UDDI注冊(cè)中心會(huì)給每個(gè)實(shí)體指定一個(gè)在程序中唯一的標(biāo)識(shí)符,叫做唯一通用標(biāo)識(shí)符(UniqueUniversalIdentifier,UUID)鍵,從而能隨時(shí)了解所有這些實(shí)體的情況。UUID鍵必須是唯一的,并且在一個(gè)UDDI注冊(cè)中心中從來(lái)都不會(huì)變化。這些鍵看上去象格式化好的十六進(jìn)制隨機(jī)字符串(例如C0B9FE13-179F-413D-8A5B-5004DB8E5BB2)。可以利用這些鍵來(lái)引用與之相關(guān)聯(lián)的實(shí)體。在一個(gè)注冊(cè)中心中創(chuàng)建的UUID鍵只在該注冊(cè)中心的上下文中有效。第4步,諸如電子交易場(chǎng)所(e-Marketplace)和搜索引擎等其它類型的客戶機(jī)與商業(yè)應(yīng)用程序(例如,基于工作流聚合起來(lái)的Web服務(wù))使用UDDI注冊(cè)中心來(lái)發(fā)現(xiàn)它們感興趣的服務(wù)。第5步,另外的企業(yè)就可以調(diào)用這些服務(wù),簡(jiǎn)便的進(jìn)行動(dòng)態(tài)集成。開(kāi)發(fā)工具和平臺(tái)(1)Microsoft.NET無(wú)疑是概念上和技術(shù)上的雙料冠軍,其涵蓋面和復(fù)雜程度是首屈一指的,這其實(shí)也恰如其分地反映了Microsoft在XMLWebService領(lǐng)域的領(lǐng)導(dǎo)地位。(2)IBM在WebService領(lǐng)域的拓展一改20世紀(jì)的穩(wěn)重而稍兼保守的作風(fēng),變得積極進(jìn)取、大步流星,而且步步堅(jiān)實(shí)。在WebService的規(guī)范上,Microsoft是IBM的主要合作伙伴,諸如SOAP、WSDL和UDDI,IBM和Microsoft都是絕對(duì)的技術(shù)先入者,而在內(nèi)部實(shí)現(xiàn)技術(shù),IBM則采用J2EE架構(gòu),在自身的Websphere平臺(tái)上提供了完整而且領(lǐng)先的WebService的開(kāi)發(fā)工具。(3)Sun在WebService時(shí)代的解決方案是SunONE。不過(guò)SunONE更像是一個(gè)Sun提供的加入了WebService特性的J2EE平臺(tái),而不像是一個(gè)純粹的WebService的開(kāi)發(fā)平臺(tái)。6.1調(diào)用XMLWebService創(chuàng)建一個(gè)簡(jiǎn)單的XMLWebService

【例6-1】創(chuàng)建一個(gè)簡(jiǎn)單的XMLWeb服務(wù)6.1調(diào)用XMLWebService使用C#開(kāi)發(fā)XMLWebService客戶端【例6-2】調(diào)用例6-1中創(chuàng)建的Web服務(wù)。實(shí)驗(yàn)5:調(diào)用XMLWebService實(shí)驗(yàn)?zāi)康模赫莆杖绾蝿?chuàng)建和調(diào)用XMLWebService實(shí)驗(yàn)要求:創(chuàng)建一個(gè)Web服務(wù),使Windows應(yīng)用程序可以引用(調(diào)用)此web服務(wù)

實(shí)驗(yàn)內(nèi)容:1、創(chuàng)建并引用一個(gè)的帶參數(shù)的web服務(wù)2、創(chuàng)建并調(diào)用一個(gè)web服務(wù),要求此web服務(wù)能返回一個(gè)數(shù)據(jù)集。6.2調(diào)用COM組件什么是COM組件在.NET中調(diào)用COM組件實(shí)例1:把文本寫入Word文檔實(shí)例2:將數(shù)據(jù)庫(kù)中數(shù)據(jù)導(dǎo)出為Word文檔

COM是什么?

COM是組件對(duì)象模型(ComponentObjectModel)的縮寫,是OLE和ActiveX等技術(shù)的基礎(chǔ)。它并不是一種面向?qū)ο蟮恼Z(yǔ)言,而是一個(gè)技術(shù)標(biāo)準(zhǔn)。它并不定義語(yǔ)言、程序結(jié)構(gòu)或是實(shí)現(xiàn)細(xì)節(jié),而是把這些留給開(kāi)發(fā)人員去處理,COM可以使用不同的語(yǔ)言來(lái)實(shí)現(xiàn)。在Windows操作系統(tǒng)中,除了操作系統(tǒng)內(nèi)核外,其他大多數(shù)的服務(wù)和進(jìn)程都與COM息息相關(guān)。在.NET調(diào)用COM組件托管對(duì)象:根據(jù)需要來(lái)執(zhí)行的對(duì)象CLR托管代碼通過(guò)一個(gè)叫做運(yùn)行庫(kù)可調(diào)用包裝(RCW運(yùn)行時(shí)調(diào)用封裝器)的代理調(diào)用COM對(duì)象運(yùn)行庫(kù)對(duì)RCW進(jìn)行垃圾回收COM對(duì)象ACOM對(duì)象BRCWRCW.NET客戶端.NET客戶端非托管托管實(shí)例1把文本寫入doc文檔在構(gòu)建Word文檔的COM對(duì)象中需要傳遞大量的參數(shù),比如文檔模板等,而這些參數(shù)可能在編碼過(guò)程中并不需要使用,所以此時(shí)我們通過(guò)System.Reflection命名空間下的Missing類的Value屬性來(lái)取代無(wú)法提供或不需要提供的參數(shù)。這是在訪問(wèn)COM組件時(shí)經(jīng)常用到的一種參數(shù)處理方式。Object

obj=(object)System.Reflection.Missing.Value;添加引用:MicrosoftWord11.0ObjectLibrary實(shí)例2使用COM導(dǎo)出數(shù)據(jù)庫(kù)中數(shù)據(jù)為word文件此實(shí)例主要介紹了MicrosoftWord對(duì)象模型中的Cell對(duì)象把數(shù)據(jù)庫(kù)記錄導(dǎo)出到word文檔表格中的編程技術(shù)。MicrosoftWord對(duì)象模型中,Tables集合對(duì)象是由Table對(duì)象組成的集合,代表選定內(nèi)容、范圍或文檔中的表格。Table對(duì)象中Cell對(duì)象代表單個(gè)表格單元格。使用Cell(x,y).Range.InsertAfter(“內(nèi)容”);方法可以將指定文本插入某一區(qū)域或選定內(nèi)容的后面。步驟:添加COM組件:MicrosoftWord11.0ObjectLibrary

命名空間:usingSystem.Data.SqlClient;usingMicrosoft.Office.Core;usingWord;usingSystem.Reflection;6.3調(diào)用WindowsAPIWin32API是Win32應(yīng)用程序編程接口,是微軟在Windows操作系統(tǒng)中提供的一系列可以讓應(yīng)用程序訪問(wèn)操作系統(tǒng)的靜態(tài)函數(shù)。操作系統(tǒng)有從16位到64位的各種版本,因此稱為Win32似乎有些不合理,但是Win32API這個(gè)名稱已經(jīng)深入人心。WindowsAPI是DLL,并且是Windows操作系統(tǒng)的一部分。從Windows窗體應(yīng)用程序中調(diào)用API

在VisualStudio.NET中創(chuàng)建一個(gè)新的項(xiàng)目導(dǎo)入System.Runtime.InteropServices

命名空間using

System.Runtime.InteropServices;用DllImport

定義一個(gè)函數(shù)添加代碼從Windows窗體調(diào)用Win32API決定你要調(diào)用的函數(shù)的名稱、參數(shù)、參數(shù)類型等實(shí)例3:運(yùn)行可執(zhí)行文件1,調(diào)用ShellExecute函數(shù)

[DllImport(“Shell32.dll”)]ShellExecute(hwnd,operation,Filename,””,””,3);2,調(diào)用PlaySound函數(shù)[DllImport(“winmm.dll”,EntryPoint=“PlaySound”)]PlaySound_DllImport(soundFileName,resourceHandle,0);實(shí)例4:播放聲音在此實(shí)例中,將創(chuàng)建并測(cè)試一個(gè)調(diào)用Win32PlaySoundAPI的類。PlaySoundAPI用來(lái)播放聲音文件(如.wav文件),它位于Winmm.dll文件中。它具有如下簽名:BOOLPlaySound( LPCSTRpszSound,HMODULEhmod,DWORDfdwSound);6.4小結(jié)本章從3個(gè)方面介紹了Windows應(yīng)用程序中涉及的調(diào)用:(1)調(diào)用XMLWebService。介紹了XMLWeb

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論