成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Visual C#編寫DLL

開發 后端
這里介紹以實例方式介紹了用Visual C#編寫DLL實現串行通信的方法,并給出了用其它語言調用該DLL的范例。

本文是作者根據工程中的實踐經驗,以實例方式介紹了用Visual C#編寫DLL實現串行通信的方法,并給出了用其它語言調用該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。

【編輯推薦】

  1. C#特有線程功能
  2. 淺談C#對象和集合
  3. 淺析C# FTP WebRequest對象
  4. C#分部方法的應用場景
  5. 概述C#線程功能
責任編輯:佚名 來源: 博客園
相關推薦

2009-07-31 17:28:35

C#語言調用DLL

2011-03-31 09:13:00

Visual Stud

2010-01-26 14:10:22

Visual C++

2009-08-12 18:04:44

編寫C#多線程

2009-08-06 16:58:40

C#編寫ActiveX

2009-08-28 15:05:35

C#編寫Calenda

2009-09-11 09:10:30

C#編寫游戲

2009-08-14 10:35:25

C#最小化編寫

2009-08-24 15:58:00

Visual C#生成

2009-08-05 16:49:42

C#中調用dll

2009-08-14 09:43:59

C#復制構造函數

2009-09-03 17:54:04

C#開發瀏覽器

2009-09-24 14:59:38

C#編寫COM組件

2009-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2009-08-07 17:25:37

C# SortedLi

2009-08-25 17:59:49

C#入門

2009-07-31 14:54:48

dll函數C#導出

2009-08-10 14:43:03

C#函數Convert

2009-09-11 09:15:06

C# get方法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成年在线 | 亚洲天堂一区二区 | 欧美一区二区三区在线视频 | 欧美日韩精品一区二区天天拍 | 久久草在线视频 | 成人亚洲一区 | 日韩免费福利视频 | 九九精品在线 | 国产精品爱久久久久久久 | 亚洲成年人免费网站 | 国产电影一区二区在线观看 | 国产乱精品一区二区三区 | 日日干日日| 成人亚洲精品 | 国产欧美一区二区三区在线播放 | 91在线一区二区 | 亚洲综合在线视频 | 亚洲精品一区久久久久久 | 久久国产精品偷 | 久草在线在线精品观看 | 欧美日韩精品免费观看 | 99热精品6| 欧美精品一区二区三区在线播放 | 粉嫩av久久一区二区三区 | 天天操天天射天天舔 | 一级片毛片 | 成人在线免费观看 | 国产日产精品一区二区三区四区 | 久久精品欧美一区二区三区不卡 | 天天爽天天操 | 一级做a毛片 | 欧美日韩精品一区二区三区四区 | 国产精品久久久久久 | 色黄视频在线 | 久久69精品久久久久久久电影好 | 一区二区高清不卡 | 国产目拍亚洲精品99久久精品 | 国产乱码精品一区二区三区中文 | 国产伦精品一区二区三区高清 | 欧美精选一区二区 | 亚洲免费在线 |