您好,登錄后才能下訂單哦!
本篇內容主要講解“Visual C#怎么編寫DLL”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Visual C#怎么編寫DLL”吧!
一、引言
串行通訊口作為計算機與外部串行設備進行數據傳輸的重要端口,因其使用簡單、方便,在業界的各種計算機系統中得到了廣泛的應用。由于應用范圍很廣,軟件人員在串行通信方面也積累了豐富的編程經驗。關于串行通信的文章不時見于報端,并且還有一些專門討論
串行通訊編程的書籍,為軟件人員提供了豐富的資源,同時對初次涉足串口編程的軟件開發者提供很好的范例幫助。
雖然關于串口編程的資料很多,但由于工程上需求多種多樣,需要根據不同的條件對串口進行靈活控制,在實際應用中,常用的方法有:
(1)用匯編或標準通訊函數,往指定端口直接讀寫數據;
(2)利用Visual Studio提供的MSComm控件;
(3)使用Windows提供的API函數。
本文是作者在工程實踐中根據實際需要,在Visual C#環境中,直接使用Windows提供的API函數實現一個串行通信動態鏈接庫(DLL)的完整實例,實例既給出了DLL函數的編寫方法,又包括一份用其它編程工具(VB)對此DLL進行聲明及調用的范例。為了使讀者一目了然,并減少代碼量,本例作了簡化,但完全可以運行。希望對需要進行串行通信編程的同行以及需要學習編寫DLL的編程愛好者提供一點幫助。
二、準備知識
1、Visual C#編寫DLL基本概念
動態鏈接庫(DLL) 是Windows操作系統的基礎,Windows API中的所有函數就是包含在DLL中,它有眾多優點,如:簡化軟件項目管理以便分工合作,有助于節省內存,便于資源共享并且可以用多種語言來編寫。
用VC# 編寫動態鏈接有以下四種類型:Win32 DLL、MFC常規DLL(動態鏈接MFC)、MFC常規DLL(靜態鏈接MFC)、MFC擴展DLL等。本程序的編寫為Win32 DLL。
2、串行通信基礎知識
在Windows系統,系統通過一個叫DCB(Device Control Block)的結構對串行口進行配置,通過Windows API GetCommState函數可以得到串行通訊口的狀態信息,使用SetCommState函數可以對串行通訊口進行設置,實現串行通信一般需按以下四步進行:
(1) 打開串口。由于串口是獨占性資源,因此應用程序打開串口后,別的應用程序就不能再打開此串口了。
(2)配置串口。利用GetCommState函數獲取串口當前配置,根據需要更改DCB 結構中的參數,然后用SetCommState函數設置串口通訊參數。
(3)數據傳送。在串口上進行數據發送接收,并根據需要進行校驗,觸發一些事件等等。這個串口通訊DLL的目的就是收發數據。
(4)關閉串口。不需要此串口時,關閉串口,供其它的應用程序使用。
3、CALLBACK函數
在微軟的官方手冊中是這樣定義CALLBACK函數的:“CALLBACK函數是由應用程序定義而由操作系統調用的函數”。在我們編寫DLL時,就是由應用程序定義而由此DLL執行的函數,這一機制在被調用者(DLL)和調用者(應用程序)之間進行信息傳遞是非常有用的。這一特性,讓初學者較難理解,但是它卻是編寫串行通信程序者的福音,正是由于使用這一特性,才可很方便地在動態鏈接庫中實現MSComm控件中的OnComm 事件,并且可根據需要進行靈活控制。
到此,相信大家對“Visual C#怎么編寫DLL”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。