| 5 | 1/1 | 返回列表 |
| 查看: 1704 | 回復(fù): 4 | |||
[求助]
有關(guān)DLL的問題
|
| 我想用DLL做一個(gè)數(shù)據(jù)庫(kù),能夠采集下位機(jī)傳來的包括整型、離散型、字符串型的數(shù)據(jù),并進(jìn)行累加計(jì)算,但是不太清楚怎么用DLL采集數(shù)據(jù)并進(jìn)行緩存,還有如何進(jìn)行累加計(jì)算。在下初學(xué)VC,求各路英雄伸出援手。! |
木蟲 (著名寫手)
|
轉(zhuǎn)貼:http://read.newbooks.com.cn/info/173238.html VC創(chuàng)建動(dòng)態(tài)庫(kù)及其使用方法簡(jiǎn)介 這里介紹的VC創(chuàng)建DLL的方法是最簡(jiǎn)單也是最常用的方法,創(chuàng)建的基本過程就象下面介紹的這樣簡(jiǎn)單。調(diào)用DLL的方法,隨不同的開發(fā)語言有所不同,但是基本上分為靜態(tài)調(diào)用和動(dòng)態(tài)調(diào)用。最常用的也就是靜態(tài)調(diào)用用,如果想了解動(dòng)態(tài)調(diào)用DLL以及DLL相關(guān)高級(jí)話題,請(qǐng)參考其他資料,這些內(nèi)容不在本章探討內(nèi)容之中。 一.VC創(chuàng)建動(dòng)態(tài)庫(kù)的過程 Step1: 首先創(chuàng)建工程,類型為”Win32 Dynamic-Link Library”。然后可以選擇”A Empty DLL Project”。 Step2: 首先創(chuàng)建頭文件,本例為”DllExample.h”,內(nèi)容如下: NOTICE:在創(chuàng)建自己的DLL頭文件過程中,您只需要把 (1) #ifndef _DLLEXAMPLE_H #define _DLLEXAMPLE_H 修改成您自己的頭文件的名稱 (2) 部分替換成您的接口函數(shù),其它部分可以復(fù)制使用。 Step3: 其次創(chuàng)建.pp文件,也就是實(shí)現(xiàn)文件。本例實(shí)現(xiàn)如下: NOTICE: 要包含頭文件,如果您的接口函數(shù)實(shí)現(xiàn)過程中需要其它的頭文件,也都在這里包含進(jìn)去。 Step4: 創(chuàng)建def文件,此文件是DLL輸出您所實(shí)現(xiàn)的所有函數(shù)接口的。創(chuàng)建時(shí)選擇”Text File”創(chuàng)建的文件后綴名是.def。本例內(nèi)容如下: LIBRARY "DLLEXAMPLE" DESCRIPTION "A Dll Example" EXPORTS Jisuan NOTICE: (1) 您只需要把LIBRARY "DLLEXAMPLE",修改成您的DLL名稱。 (2) EXPORTS下,只列出函數(shù)名稱,而不包含其參數(shù)等。 按照以上方式創(chuàng)建的DLL,是其他任何語言都可以調(diào)用的,基本的過程如上所述,其實(shí)很簡(jiǎn)單。 二.應(yīng)用程序調(diào)用DLL的方法 這里我是用VC創(chuàng)建了一個(gè)很簡(jiǎn)單的應(yīng)用程序,其實(shí)就一個(gè)按鈕,來調(diào)用。 代碼如下: 這里用的是靜態(tài)調(diào)用,因此只需要把動(dòng)態(tài)庫(kù)的DLL文件,LIB文件和頭文件拷到需要調(diào)用動(dòng)態(tài)庫(kù)的應(yīng)用程序當(dāng)前目錄下就可以了。另外需要注意的是VC,還需要用”Project->Add to Project->Files”把LIB文件和頭文件添加到應(yīng)用程序,否則會(huì)報(bào)找不到動(dòng)態(tài)庫(kù)的錯(cuò)誤。 基本情況就是這樣,其他編程平臺(tái)的調(diào)用方法可能有所不同,但是大同小異。另外一個(gè)需要注意的問題是,當(dāng)其他語言需要調(diào)用C編寫的動(dòng)態(tài)庫(kù)時(shí),需要進(jìn)行類型轉(zhuǎn)換,這些內(nèi)容將另外討論。 |

新蟲 (著名寫手)
金蟲 (初入文壇)
|
為什么要用DLL做呢?DLL文件是需要被調(diào)用才能執(zhí)行的,所以可能你還得需要用VC寫一個(gè)EXE程序來調(diào)用這個(gè)DLL文件。 我對(duì)VC串口通信不是很熟。通過串口通信獲取數(shù)據(jù),應(yīng)該可以用對(duì)應(yīng)類型的變量存儲(chǔ)就行了。要獲取的類型數(shù)據(jù)莫非還不能提前確定? 累加就不說了,根據(jù)你們的累加規(guī)則。如果數(shù)據(jù)連續(xù)采集那用一個(gè)局部變量存儲(chǔ)總和值,最后寫入數(shù)據(jù)文件,不然的話可以用全局變量或者從保存的數(shù)據(jù)文件中讀取來獲取該次采集之前所有采集的總和值。 我還是不懂你的DLL做一個(gè)數(shù)據(jù)庫(kù)是什么意思,這種數(shù)據(jù)采集一般量都不大,用VC中中的文件操作函數(shù)存儲(chǔ)到文本文件里面就可以,還方便用記事本查看。 總之你要實(shí)現(xiàn)的功能并不難,關(guān)鍵在于解決和下位機(jī)的通信問題。理清思路之后百度百度應(yīng)該就能完成。 |
| 5 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 070300化學(xué)求調(diào)劑 +9 | 苑豆豆 2026-03-20 | 9/450 |
|
|---|---|---|---|---|
|
[考研] 291求調(diào)劑 +3 | HanBeiNingZC 2026-03-24 | 3/150 |
|
|
[考研]
|
13659058978 2026-03-24 | 4/200 |
|
|
[考研] 341求調(diào)劑(一志愿湖南大學(xué)070300) +5 | 番茄頭--- 2026-03-22 | 6/300 |
|
|
[考研] 291 求調(diào)劑 +4 | 化工2026屆畢業(yè)?/a> 2026-03-21 | 5/250 |
|
|
[考研] 接收2026碩士調(diào)劑(學(xué)碩+專碩) +4 | allen-yin 2026-03-23 | 6/300 |
|
|
[考研] 328求調(diào)劑 +4 | LHHL66 2026-03-23 | 4/200 |
|
|
[考研] 298求調(diào)劑 +8 | 上岸6666@ 2026-03-20 | 8/400 |
|
|
[考研] 求調(diào)劑院校信息 +6 | CX 330 2026-03-21 | 6/300 |
|
|
[考研] 一志愿北京化工大學(xué)070300 學(xué)碩336求調(diào)劑 +5 | vv迷 2026-03-21 | 8/400 |
|
|
[考研] 286求調(diào)劑 +10 | Faune 2026-03-21 | 10/500 |
|
|
[考研] 初試 317 +7 | 半拉月丙 2026-03-20 | 7/350 |
|
|
[考研] 0703化學(xué)297求調(diào)劑 +3 | Daisy☆ 2026-03-20 | 3/150 |
|
|
[考研] 求調(diào)劑 +3 | Ma_xt 2026-03-17 | 3/150 |
|
|
[考研] 308求調(diào)劑 +3 | 阿姐阿姐家啊 2026-03-18 | 3/150 |
|
|
[考研] 一志愿 西北大學(xué) ,070300化學(xué)學(xué)碩,總分287,雙非一本,求調(diào)劑。 +4 | 晨昏線與星海 2026-03-19 | 4/200 |
|
|
[考研] 求調(diào)劑,一志愿:南京航空航天大學(xué)大學(xué) ,080500材料科學(xué)與工程學(xué)碩,總分289分 +4 | @taotao 2026-03-19 | 4/200 |
|
|
[考研] 290求調(diào)劑 +7 | ^O^乜 2026-03-19 | 7/350 |
|
|
[考研] 一志愿西南交通 專碩 材料355 本科雙非 求調(diào)劑 +5 | 西南交通專材355 2026-03-19 | 5/250 |
|
|
[考研] 本科鄭州大學(xué)物理學(xué)院,一志愿華科070200學(xué)碩,346求調(diào)劑 +4 | 我不是一根蔥 2026-03-18 | 4/200 |
|