本篇內(nèi)容主要講解“Visual C#怎么編寫DLL”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Visual C#怎么編寫DLL”吧!
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)黃島免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
一、引言
串行通訊口作為計算機(jī)與外部串行設(shè)備進(jìn)行數(shù)據(jù)傳輸?shù)闹匾丝冢蚱涫褂煤唵巍⒎奖?,在業(yè)界的各種計算機(jī)系統(tǒng)中得到了廣泛的應(yīng)用。由于應(yīng)用范圍很廣,軟件人員在串行通信方面也積累了豐富的編程經(jīng)驗(yàn)。關(guān)于串行通信的文章不時見于報端,并且還有一些專門討論
串行通訊編程的書籍,為軟件人員提供了豐富的資源,同時對初次涉足串口編程的軟件開發(fā)者提供很好的范例幫助。
雖然關(guān)于串口編程的資料很多,但由于工程上需求多種多樣,需要根據(jù)不同的條件對串口進(jìn)行靈活控制,在實(shí)際應(yīng)用中,常用的方法有:
(1)用匯編或標(biāo)準(zhǔn)通訊函數(shù),往指定端口直接讀寫數(shù)據(jù);
(2)利用Visual Studio提供的MSComm控件;
(3)使用Windows提供的API函數(shù)。
本文是作者在工程實(shí)踐中根據(jù)實(shí)際需要,在Visual C#環(huán)境中,直接使用Windows提供的API函數(shù)實(shí)現(xiàn)一個串行通信動態(tài)鏈接庫(DLL)的完整實(shí)例,實(shí)例既給出了DLL函數(shù)的編寫方法,又包括一份用其它編程工具(VB)對此DLL進(jìn)行聲明及調(diào)用的范例。為了使讀者一目了然,并減少代碼量,本例作了簡化,但完全可以運(yùn)行。希望對需要進(jìn)行串行通信編程的同行以及需要學(xué)習(xí)編寫DLL的編程愛好者提供一點(diǎn)幫助。
二、準(zhǔn)備知識
1、Visual C#編寫DLL基本概念
動態(tài)鏈接庫(DLL) 是Windows操作系統(tǒng)的基礎(chǔ),Windows API中的所有函數(shù)就是包含在DLL中,它有眾多優(yōu)點(diǎn),如:簡化軟件項(xiàng)目管理以便分工合作,有助于節(jié)省內(nèi)存,便于資源共享并且可以用多種語言來編寫。
用VC# 編寫動態(tài)鏈接有以下四種類型:Win32 DLL、MFC常規(guī)DLL(動態(tài)鏈接MFC)、MFC常規(guī)DLL(靜態(tài)鏈接MFC)、MFC擴(kuò)展DLL等。本程序的編寫為Win32 DLL。
2、串行通信基礎(chǔ)知識
在Windows系統(tǒng),系統(tǒng)通過一個叫DCB(Device Control Block)的結(jié)構(gòu)對串行口進(jìn)行配置,通過Windows API GetCommState函數(shù)可以得到串行通訊口的狀態(tài)信息,使用SetCommState函數(shù)可以對串行通訊口進(jìn)行設(shè)置,實(shí)現(xiàn)串行通信一般需按以下四步進(jìn)行:
(1) 打開串口。由于串口是獨(dú)占性資源,因此應(yīng)用程序打開串口后,別的應(yīng)用程序就不能再打開此串口了。
(2)配置串口。利用GetCommState函數(shù)獲取串口當(dāng)前配置,根據(jù)需要更改DCB 結(jié)構(gòu)中的參數(shù),然后用SetCommState函數(shù)設(shè)置串口通訊參數(shù)。
(3)數(shù)據(jù)傳送。在串口上進(jìn)行數(shù)據(jù)發(fā)送接收,并根據(jù)需要進(jìn)行校驗(yàn),觸發(fā)一些事件等等。這個串口通訊DLL的目的就是收發(fā)數(shù)據(jù)。
(4)關(guān)閉串口。不需要此串口時,關(guān)閉串口,供其它的應(yīng)用程序使用。
3、CALLBACK函數(shù)
在微軟的官方手冊中是這樣定義CALLBACK函數(shù)的:“CALLBACK函數(shù)是由應(yīng)用程序定義而由操作系統(tǒng)調(diào)用的函數(shù)”。在我們編寫DLL時,就是由應(yīng)用程序定義而由此DLL執(zhí)行的函數(shù),這一機(jī)制在被調(diào)用者(DLL)和調(diào)用者(應(yīng)用程序)之間進(jìn)行信息傳遞是非常有用的。這一特性,讓初學(xué)者較難理解,但是它卻是編寫串行通信程序者的福音,正是由于使用這一特性,才可很方便地在動態(tài)鏈接庫中實(shí)現(xiàn)MSComm控件中的OnComm 事件,并且可根據(jù)需要進(jìn)行靈活控制。
到此,相信大家對“Visual C#怎么編寫DLL”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)站名稱:VisualC#怎么編寫DLL
文章起源:http://chinadenli.net/article30/ppispo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、網(wǎng)站收錄、網(wǎng)站設(shè)計、面包屑導(dǎo)航、網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)