A. 《人月神話》pdf下載在線閱讀,求百度網盤雲資源
《人月神話》([美] 弗雷德里克·布魯克斯)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:https://pan..com/s/1Tq9oJ3mkU7B-XJnhh5H0NQ
書名:人月神話
作者:[美] 弗雷德里克·布魯克斯
譯者:汪穎
豆瓣評分:8.4
出版社:清華大學出版社
出版年份:2002-11
頁數:369
內容簡介:
作者為人們管理復雜項目提供了頗具洞察力的見解,既有很多發人深省的觀點,也有大量的軟體工程實踐。書中的內容來自布魯克斯在IBM公司System 360家族和OS 360中的項目管理經驗。初版的20年後,布魯克斯重新審視了他原先的觀點,增加了一些新的想法和建議。新增加的章節包括:原著中一些核心觀點的精華;在經過了一個時代以後,Brooks博士對原先觀點新的認識;1986年的經典文章《沒有銀彈》;對1986年所下論斷(在10年內不會出現銀彈)現在的認識。
作者簡介:
弗雷德里克·布魯克斯(Frederick P. Brooks, Jr.)是北卡羅萊納大學Kenan-Flagler商學院的計算機科學教授。他曾榮獲圖靈獎,美國計算機協會(ACM)稱贊他「對計算機體系結構、操作系統和軟體工程做出了里程碑式的貢獻。」
布魯克斯被認為是IBM 360系統之父,他曾擔任360系統的項目經理、360操作系統項目設計階段的經理。因在這兩個項目中的傑出貢獻,布魯克斯和Bob Evans、Erich Bloch在1985年獲得美國國家技術獎(National Medal of Technology)。布魯克斯早期還曾擔任IBM公司Stretch和Harvest計算機的體系結構設計師。布魯克斯創立了北卡羅萊納大學的計算機科學系,在1964-1984年期間擔任系主任。他還曾任職於美國國家科技局和國防科學技術委員會。他目前的教學和研究方向是計算機體系結構、分子模型繪圖和虛擬環境設計。
UMLChina翻譯組的成員汪穎(Adams Wang)翻譯了這本《人月神話》。UMLChina是中文世界訪問量最大的軟體工程網站。譯者汪穎畢業於華中理工大學,從事軟體開發以及流程改進方面的工作。
B. 關於蘋果手機ios版本從測試版降到正式版,之前下載的應用和數據會保留么
從高版本降下來時會刪除掉之前的應用和數據的,所以建議操作前對必要信息採取備份措施。
ios為客戶提供信息基礎設施的投資保護。ios今天支持的許多特性是大多數客戶未來需要的特性。隨著一家公司的成長擴展到新的領地,隨著兼並收購帶來的基礎機構復雜性以及協議轉換或新流量模式的出現,ios提供的體系結構能使機構靈活地應用變化和經濟有效地進行擴展以滿足新的需求。ios允許我們的客戶迅速調節適應新的模式,更長時間地保持其信息基礎機構投資;其結果是隨時間推移提供投資保護和降低擁有成本。
C. 怎麼將ipad平板電腦和華為手機連接
最簡單連接方式是打開藍牙,將兩者配對後,可以相互傳輸文檔、圖片等文件,應用程序不能互傳,因為傳了也沒有,兩者操作系統不同,所以無法安裝使用彼此的應用APP。
D. 求「Java軟體體系結構設計模式標准指南(Kuchana著)的中文版PDF電子書(若有DOC的,那當然更好)。
關注
E. 誰告訴給發一下這幾本書的中文版pdf
可以去編程中國社區看看,那邊有專門的設計模式,網站架構,數據結構等方面的技術資料~
F. 軟體體系結構在軟體開發過程中的作用是什麼試舉一例來說明
主要用於後期維護用的!現在能開發出來一種功能全的軟體很容易,但在後期擴展就不怎麼容易了!採用體系結構能很好為後期維護准備!
G. 文字轉語音晶元(單片機用)
45Microcontrollers & Embedded Systems2002.12
新器件新技術 NEW PRODUCT & TECH
用EP7211實現傳呼信息實時語音合成和播放
■ 鄭州解放軍信息工程大學 胡澤明 王鵬
摘 要
關鍵詞
闡述在一款集成傳呼功能的二合一PDA系統中,使用嵌入式處理器EP7211實現個人傳呼信
息的實時語音合成和播放的功能,主要包括字元語音庫的建立,字元語音合成演算法和Codec
語音中斷服務常式等3部分.
PDA G.729 語音庫 語音合成
引 言
PDA(Personal Digital Assitant,個人數字助理)
是近年來繼尋呼機和行動電話之後,在國內市場迅
速崛起的攜帶型電子產品.就其擴展意義來講,它
能夠集成移動計算,電話和網路等多種功能.根據
不同的應用需求,它可以管理個人信息,提供名片
存儲和日程安排,也可以接收各種尋呼信息(如股
市,天氣預報等).如果是集成通信模塊,還可以
作為行動電話使用,進行無線網路互聯.廣義的
PDA包括簡單的電子記事本,電子辭典和功能強大
的掌上電腦,它們的主要區別表現在操作系統,存
儲能力,運算速度和數據交換能力等方面.
目前國內傳統PDA產品經過幾年的高速發展
後,市場基本飽和,銷售額出現負增長.不過由於
PDA產品的靈活性,有針對性的行業應用作為一個
新亮點,開始為人們所關注.經過行業應用改造後
的PDA產品,已經在國內市場大顯身手.文曲星
展現超強的語言翻譯能力,比較適合於大學生和語
言翻譯者使用;藍火系列能實時接收股市信息和
專家點評,適合工薪階層的炒股者.國家信息產業
部已經鼓勵PDA產品在交通,警務,保險等領域
的行業應用和推廣.
分析市場需求,我們研發了集成傳呼功能的,
專門面向鐵路交通行業應用的鐵路交通信息系統
PDA.本PDA系統除了具備傳統PDA的個人名片
管理和辭典檢索等功能外,同時提供交通行業應用
的民航航班查詢,鐵路列車時刻表查詢等功能.
本PDA的尋呼系統實現如下功能:能夠通過尋
呼對列車時刻表,列車晚點信息,列車剩餘票額,
股道信息等行業數據進行動態更新.作為另一個特
色,當接收到個人尋呼時,能夠將尋呼內容實時地
轉換成語音並播放.
下面重點介紹本PDA系統中使用嵌入式處理
器EP7211實現個人尋呼內容的實時語音轉換和播
放.該功能的實現包含前後相關的3個部分:字元
語音庫的建立,字元的語音合成演算法和Codec語音
中斷服務常式.
1實現條件和要求
PDA屬於嵌入式應用系統,其同一般PC機有
很大差別.硬體方面,嵌入式處理器基於RISC體
系結構,一般工作頻率在幾十MHz,甚至更低;系
統內存容量一般在幾百KB~幾MB之間;一般使用
容量小的ROM或者Flash作為硬碟來存儲可執行程
序和數據.軟體方面,PDA系統一般有專用的嵌入
式操作系統和軟體開發調試移植環境.
個人傳呼信息的特點是單條傳呼信息長度變化
較大,20~50個字元不等.最為常見的是"請回電
話***";傳呼信息涉及到的字元數量較大,字元
語音合成時運算量大,單字元合成後語音數據佔用
的存儲空間多;需要事先建立字元語音庫等.
由於具體硬體環境的限制,傳呼信息的特點和
語音合成的要求,該功能能夠實現的前提有:語音
庫佔用的空間小;字元合成時速度要快;採用前台
進行字元語音合成時,以後台中斷方式進行合成語
音的播放來保證其實時性和連續性.
2具體實現
下面分別介紹字元語音庫的建立,字元語音合成
演算法,本PDA系統的框架結構和語音中斷服務常式.
2.1建立字元語音庫
我們選用G.729語音壓縮編碼標准來建立語音
庫.該標准採用的演算法是共軛結構的代數碼激勵線
462002.12
新器件新技術 NEW PRODUCT & TECH
性預測(CS-ACELP),是基於CELP(碼激勵線性預
測)編碼模型的演算法.這種編碼規范的嚴格性使性
能達到或超過了32 Kbps的G.726 ADPCM編碼,具
有很高的語音質量;同時,它是在語音信號8 KHz
取樣的基礎上得到16 bit線性PCM後進行編碼的,
壓縮後的數據速率僅為8 Kbps,具有相當於8:1的
高壓縮率.其演算法延遲少於16 ms.由於G.729編解
碼器能夠實現很高的語音質量和很低的演算法延時,
因此被廣泛地應用.
字元語音庫是一個單字發音語音數據的集合,
各段數據之間相互獨立,不具有相關性.語音庫包
含了國標一,二級字型檔中的所有6763個漢字,10個
阿拉伯數字和26個英文字元的標准普通話語音數
據.每個漢字或字元發音時長為0.65 s,採用8 KHz
抽樣頻率,使用了G.729A語音編碼演算法對上述的語
音數據進行壓縮,壓縮後的數據速率為8 Kbps,相
當於具有8:1的高壓縮率.在漢字中,同音字佔了
相當大的比例,而在語音合成中對於同音字的處理
是沒有區別的,故近7000個漢字,我們只存儲1123
個不同的發音.經過同音字處理和採用G.729A標准
壓縮字元語音數據,則最終建立的語音庫文件大小
為729 950位元組,完全符合本PDA系統的數據存儲
要求;否則,語音庫數據量太大,本PDA系統不
能接受!
建立一個語音壓縮資料庫的具體步驟如下:
◇ 將數字和常用漢字的標准發音獨立地錄入到
數據文件中,作為基礎數據.使用cooledit2000軟
件完成語音的錄入.
◇ 對於輸入數據,按照每幀10 ms(80個樣點)
的長度,將A_law語音通過簡單換算變成16 bit PCM
數據,作為編碼演算法的輸入.
◇ 按照G.729A演算法標准,對數據進行編碼.
◇ 將編碼後的數據轉換為二進制比特流,寫
入語音庫文件中.壓縮後數據速率為8 Kbps,具有
相當於8:1的高壓縮率.
用C語言實現這一過程的程序流程如圖1所示.
字元語音庫的建立是在Windows平台及Visual
C++編程環境下實現的,最終壓縮處理後數據量的
大小為729 950位元組,每個字元語音數據的大小是
650位元組.
2.2語音合成
當收到個人傳呼信息時,語音合成程序首先從
指定位置獲取傳呼信息數據,然後在語音庫中查找
每個漢字,阿拉伯數字或者英文字元的發音,重組
一個數據文件.解碼程序對該文件進行解碼並且輸
出原始語音.語音合成流程如圖2所示.
語音合成過程首先是當前字元在語音庫的定
位.對於10個阿拉伯數字和26個英文字元,將其
放在語音庫開頭.這些字元的查找比較方便.漢字
是2位元組存儲,我們依據其區位碼來作為語音庫中
的定位索引.字元語音庫檢索結束後的語音壓縮數
頭文件,全局變數,函數原型的說明
輸入語音文件及壓縮後的碼文件名
初始化編碼器,包括濾波器狀態的初始
化及語音,激勵等緩沖區的初始化
語音文件是否結束
讀1幀語音(80點)(A_Law)
轉換成16bit線性PCM
將參數碼字轉成串列碼
流,再轉成碼字codeword
寫文件
結束
編碼主函數Coder_ld8a()
Y
N
圖1 字元語音庫的建立流程圖
查找語音庫,將尋呼文字信
息替換為壓縮語音文件
解碼器初始化
碼文件是否結束
讀取1幀數據,並
轉換成二進制碼流
解碼主函數
輸出數據變為A_LAW信號
語音播放
結束
Y
N
圖2 語音合成流程圖
47Microcontrollers & Embedded Systems2002.12
新器件新技術 NEW PRODUCT & TECH
據作為該字元解碼過程的輸入.
數據解碼過程可以分為參數解碼和重構信號後
處理2部分.首先要從輸入的數據中提取參數符
號,對這些符號解碼之後,可以獲得相應於10 ms
話音幀的編碼器參數.這些參數包括線性預測系
數,自適應碼本矢量,固定碼本矢量以及它們的增
益.解碼之後的參數用來計算重建語音信號.得到
重構語音信號只有通過後處理過程來對該信號進行
放大,包括後向濾波,高通濾波以及按比例因子擴
大,最後得到原始的語音數據.
字元解碼器原理如圖3所示.
2.3PDA系統的體系結構
PDA系統的硬體體系結構如圖4所示.
PDA系統中嵌入式處理器EP7211進行數據處
理,傳呼解碼晶元接收傳呼信息並進行解碼, LCD
提供數據輸出顯示,觸摸屏提供用戶輸入介面,
Flash用來存儲應用程序和數據,SRAM為程序運行
提供內存空間,電源電路為嵌入式處理器和外圍設
備提供所需要的工作電壓.
嵌入式處理器EP7211是Cirrus Logic公司專門為
低成本,超低功耗的嵌入式應用設計的,包含
ARM7TDMI處理器內核和豐富的外圍介面.外圍接
口有CODEC音頻介面,SPI串列A/D介面,單色LCD
介面,DRAM介面,紅外介面,2個PWM介面,實
時時鍾RTC以及電源檢測介面.EP7211的內核電路
工作在2.5 V,而外圍電路工作在3.3 V;可根據具
體情況對內核的
時鍾進行動態編
程式控制制,可工作
在18,36,49和74
MHz.另外EP7211
還有3種基本供
電模式:正常操
作(operating),
空閑(idle)和等
待(standby).在
等待模式,主時
鍾被關斷,整個
CPU及相關外圍
(除中斷和RTC)
也關斷,但可通
過中斷或按鈕來
喚醒.
系統軟體開發平台採用了我們自主開發研製
的,專門面向嵌入式應用系統開發的XGW平台.
XGW開發平台採用消息驅動機制,是C語言開發.
它功能強大,模塊化設計,擴展性強,產品升級容
易,總體框架如圖5所示.
圖5全面反應了XGW開發平台的體系結構,包
括事件消息驅動機制,內存管理,字元和圖形顯示
輸出,圖形組件庫等.圖形組件庫中的編輯框,列
表框,按鈕等為用戶應用程序開發提供了系統應用
編程介面API.不過,XGW平台對於系統硬體的中
斷響應沒有提供統一的入口和出口,需要開發人員
單獨處理.XGW開發平台的消息分為滑鼠消息,鍵
盤消息和定時器消息等3類.
2.4語音中斷服務常式
嵌入式處理器EP7211本身提供的外設語音錄放
Codec(coder/decoder)晶元可以實現語音的錄入和
適應碼
向量解碼
增益解碼
固定碼
向量解碼
結構激勵
MA碼增
益預測
11
,GBGA
22
,GBGA
)(nv
間隔延時
p
g^
^
c
g^
11
,CS
22
,CS
)(zP
)(nc
編碼序號
LP綜合
濾波器
)(nu
後濾波器
)(^ns
高通上標定
)(nfs
LSP解碼內插值)(^zALSF
LSP序號
3210
,,,LLLL
每幀
每子幀
210
,,PPP
圖3 字元解碼原理框圖
天線
LCD
觸摸屏
時鍾,復
位,喚醒射頻輸入
FlashSRAM電源管理
串列口
紅外口
傳呼解
碼晶元嵌入式
處理器
EP7211
收音設備
語音錄放電路
圖4 硬體結構
482002.12
新器件新技術 NEW PRODUCT & TECH
播放功能.該模塊提供2個獨立的16位元組長的數據
發送和接收緩沖區(FIFO),其為全雙工模式,數
據收發速率是64 kbps.晶元自身提供工作時鍾,定
時脈沖以及數據的串/並和並/串轉換功能.編程
人員通過設置EP7211相應的控制寄存器使能這些項
功能,則每當數據收發緩沖區半慢或者半空時(8
位元組),晶元自身就會產生一次中斷信號供外部處
理.理論計算晶元中斷速率是1 ms/次.
語音播放中斷服務常式主要完成的工作是,當
產生語音中斷時,仍然有數據需要播放,則向語音
數據發送緩沖區FIFO中寫入指定數據,剩下的工
作由Codec晶元本身來完成.中斷服務常式ISR的
偽代碼如下(因為具體實現代碼沒有通用性,故此
處用偽碼描述):
void IRQ_Codec_Handler(void)
{
while(檢測系統狀態寄存器,發現語音晶元數據發送緩
沖區FIFO非滿)
{
if(已經播放過的語音數據長度 = 給定的需要播
放的語音數據長度) //結束
{
禁止數據發送緩沖區中斷;
復位各相關的全局變數;
程序返回;
}
}
else
{
向語音晶元發送數據緩沖區FIFO寫入默認數據
系統調用
通用開
發控制項字元輸出圖形輸出
內存管理用戶自
定義控制項
事件消息驅動
硬體中斷
執行
ISR
中斷返回
硬體中斷
執行
ISR
中斷返回
用戶級應用程序
圖5 XGW平台的軟體體系結構
0XFF;
}
}
}3試驗結果和分析
由於在設計階段充分考慮過語音合成演算法的
大運算量和系統的實時性要求,故我們在具體實
現的時候也採取了一些措施,比較突出的有:用
ARM匯編語言來實現關鍵性的函數代碼;語音合
成時提高處理器EP7211的工作頻率(處理器正常
工作頻率是18 MHz);對於一些常用的三角函數計
算,採用查表的方式等來加快程序執行速度.在
PDA樣機測試中,單字元合成時間在650 ms左右,
基本上能夠滿足實際應用需求.數據語音庫經過
處理之後,佔用了729 560位元組也能夠滿足本PDA
系統的存儲要求.
當PDA系統收到1條個人傳呼信息時,在語音
庫的支持下,立刻啟動語音合成演算法,逐個進行字
符語音合成.當第1個字元語音合成結束後,立刻
啟動語音中斷服務常式進行語音播放.這樣收到的
個人傳呼信息,在前台逐個字元解碼時,其後台語
音播放也在進行.根據實際測試參數,基本上滿足
了系統的實時性要求.
從一定角度看,單字元650 ms的語音合成時間
基本能夠滿足實際應用需要,但還是希望能夠進一
步減小這個值.這由於我們對ARM處理器的使用
還處在研究階段.ARM本身提供了16位的Thumb
指令集和32位的ARM指令集,而且兩者在某些方
面表現出較大差別.一般來講,Thumb代碼長度是
ARM代碼長度的65%,而執行效率要比後者高出
60%.但在某些方面,32位的ARM指令集也會表
現出其優於16位Thumb指令集的強大功能;同時
該處理器系統支持ARM指令集和Thumb指令集混
合編程模式.隨著對二者差別和各自優勢的深入理
解,結合本系統的硬體體系結構,採用有效的指令
集混合編程模式將會使程序執行效率進一步提高,
從而使實時性得到進一步加強.
參考文獻
1Cirrus Logic公司. EP7211數據手冊
2馬忠梅. ARM嵌入式處理器結構與應用基
礎. 北京:北京航空航天大學出版社,2002
3Gibson Jerry D,等. 多媒體數字壓縮原理與
標准. 李煜暉等譯. 北京:電子工業出版社,2000
H. PandPdfJz2.dll是什麼文件
這個是dll文件意義
軟體
DLL(Dynamic Link Library)文件為動態鏈接庫文件,又稱"應用程序拓展",是軟體文件類型。在Windows中,許多應用程序並不是一個完整的可執行文件,它們被分割成一些相對獨立的動態鏈接庫,即DLL文件,放置於系統中。當我們執行某一個程序時,相應的DLL文件就會被調用。一個應用程序可使用多個DLL文件,一個DLL文件也可能被不同的應用程序使用,這樣的DLL文件被稱為共享DLL文件。
5
本詞條無參考資料,歡迎各位編輯詞條,額外獲取5個金幣。
基本信息
中文名稱
動態鏈接庫
外文名稱
Dynamic Link Library
簡稱
DLL
屬性
軟體文件類型
目錄
1意義
2作用
3常見種類
4特點
5鏈接方法
6故障排除
7文件修復
折疊編輯本段意義
DLL文件中存放的是各類程序的函數(子過程)實現過程,當程序需要調用函數時需要先載入DLL,然後取得函數的地址,最後進行調用。使用DLL文件的好處是程序不需要在運行之初載入所有代碼,只有在程序需要某個函數的時候才從DLL中取出。另外,使用DLL文件還可以減小程序的體積。
折疊編輯本段作用
動態鏈接庫是早期Windows系統由於受限於當時計算機內存空間較小的問題而出現的一種內存優化方法。當一段相同的子程序被多個程序調用時,為了減少內存消耗,可以將這段子程序存儲為一個可執行文件,當被多個程序調用時只在內存中生成和使用同一個實例。
在 Windows操作系統中,每個程序都可以使用該 DLL 中包含的功能來實現"打開"對話框。這有助於促進代碼重用和內存的有效使用。
通過使用 DLL,程序可以實現模塊化,由相對獨立的組件組成。例如,一個記賬程序可以按模塊來銷售。可以在運行時將各個模塊載入到主程序中(如果安裝了相應模塊)。因為模塊是彼此獨立的,所以程序的載入速度更快,而且模塊只在相應的功能被請求時才載入。
此外,可以更為容易地將更新應用於各個模塊,而不會影響該程序的其他部分。例如,您可能具有一個工資計算程序,而稅率每年都會更改。當這些更改被隔離到 DLL 中以後,您無需重新生成或安裝整個程序就可以應用更新。
折疊編輯本段常見種類
Windows操作系統中的一些作為 DLL 實現的文件
·ActiveX 控制項 (.ocx) 文件
ActiveX控制項的一個示例是日歷控制項,它使您可以從日歷中選擇日期。
·控制面板 (.cpl) 文件
.cpl 文件的一個示例是位於控制面板中的項。每個項都是一個專用 DLL。
·設備驅動程序(.drv) 文件
設備驅動程序的一個示例是控制列印到列印機的列印機驅動程序。
折疊編輯本段特點
一、 使用較少的資源
當多個程序使用同一個函數庫時,DLL 可以減少在磁碟和物理內存中載入的代碼的重復量。這不僅可以大大影響在前台運行的程序,而且可以大大影響其他在 Windows操作系統上運行的程序。
二、 推廣模塊式體系結構
DLL 有助於促進模塊式程序的開發。這可以幫助您開發要求提供多個語言版本的大型程序或要求具有模塊式體系結構的程序。模塊式程序的一個示例是具有多個可以在運行時動態載入的模塊的計帳程序。
三、 簡化部署和安裝
當 DLL 中的函數需要更新或修復時,部署和安裝 DLL 不要求重新建立程序與該 DLL 的鏈接。此外,如果多個程序使用同一個 DLL,那麼多個程序都將從該更新或修復中獲益。當您使用定期更新或修復的第三方 DLL 時,此問題可能會更頻繁地出現。
1、如何了解某應用程序使用哪些DLL文件
右鍵單擊該應用程序並選擇快捷菜單中的"快速查看"命令,在隨後出現的"快速查看"窗口的"引入表"一欄中你將看到其使用DLL文件的情況。
2、如何知道DLL文件被幾個程序使用
運行Regedit,進入HKEY_LOCAL_子鍵查看,其右邊窗口中就顯示了所有DLL文件及其相關數據,其中數據右邊小括弧內的數字就說明了被幾個程序使用,(2)表示被兩個程序使用,(0)則表示無程序使用,可以將其刪除。
3、如何解決DLL文件丟失的情況
有時在卸載文件時會提醒你刪除某個DLL文件可能會影響其他應用程序的運行。所以當你卸載軟體時,就有可能誤刪共享的DLL文件。一旦出現了丟失DLL文件的情況,如果你能確定其名稱,可以在Sysbckup(系統備份文件夾)中找到該DLL文件,將其復制到System文件夾中。如果這樣不行,在電腦啟動時又總是出現"***dll文件丟失……"的提示框,你可以在"開始/運行"中運行Msconfig,進入系統配置實用程序對話框以後,單擊選擇"System.ini"標簽,找出提示丟失的DLL文件,使其不被選中,這樣開機時就不會出現錯誤提示了。
rundll的功能是以命令列的方式呼叫Windows的動態鏈接庫。
Rundll32.exe與Rundll.exe的區別就在於前者是用於32位的鏈結庫,後者是用於16位的鏈結庫。rundll32.exe是專門用來調用dll文件的程序。
如果用的是Win98,rundll32.exe一般存在於Windows目錄下;
如果用的WinXP、Win7,rundll32.exe一般存在於WindowsSystem32目錄下。
若是在其它目錄,就可能是一個木馬程序,它會偽裝成rundll32.exe。
折疊編輯本段鏈接方法
當您在應用程序中載入 DLL 時,可以使用兩種鏈接方法來調用導出的 DLL 函數。這兩種鏈接方法是載入時動態鏈接和運行時動態鏈接。
在運行時動態鏈接中,應用程序調用 LoadLibrary 函數或 LoadLibraryEx 函數以在運行時載入 DLL。成功載入DLL後,可以使用 GetProcAddress 函數獲得要調用的導出的 DLL 函數的地址。在使用運行時動態鏈接時,無需使用導入庫文件。
Win32 DLL的特點
Win32 DLL與 Win16 DLL有很大的區別,這主要是由操作系統的設計思想決定的。一方面,在Win16 DLL中程序入口點函數和出口點函數(LibMain和WEP)是分別實現的;而在Win32 DLL中卻由同一函數DLLMain來實現。無論何時,當一個進程或線程載入和卸載DLL時,都要調用該函數,它的原型是
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);
其中,第一個參數表示DLL的實例句柄;第三個參數系統保留;這里主要介紹一下第二個參數,它有四個可能的值:DLL_PROCESS_ATTACH(進程載入),DLL_THREAD_ATTACH(線程載入),DLL_THREAD_DETACH(線程卸載),DLL_PROCESS_DETACH(進程卸載),在DLLMain函數中可以對傳遞進來的這個參數的值進行判別,並根據不同的參數值對DLL進行必要的初始化或清理工作。舉個例子來說,當有一個進程載入一個DLL時,系統分派給DLL的第二個參數為DLL_PROCESS_ATTACH,這時,你可以根據這個參數初始化特定的數據。另一方面,在Win16環境下,所有應用程序都在同一地址空間;而在Win32環境下,所有應用程序都有自己的私有空間,每個進程的空間都是相互獨立的,這減少了應用程序間的相互影響,但同時也增加了編程的難度。大家知道,在Win16環境中,DLL的全局數據對每個載入它的進程來說都是相同的;而在Win32環境中,情況卻發生了變化,當進程在載入DLL時,系統自動把DLL地址映射到該進程的私有空間,而且也復制該DLL的全局數據的一份拷貝到該進程空間,也就是說每個進程所擁有的相同的DLL的全局數據其值卻並不一定是相同的。因此,在Win32環境下要想在多個進程中共享數據,就必須進行必要的設置。亦即把這些需要共享的數據分離出來,放置在一個獨立的數據段里,並把該段的屬性設置為共享。
折疊編輯本段故障排除
可以使用多個工具來幫助您解決 DLL 問題。以下是其中的部分工具。
Dependency Walker
Dependency Walker 工具可以遞歸掃描以尋找程序所使用的所有依賴 DLL。當您在 Dependency Walker 中打開程序時,Dependency Walker 會執行下列檢查:
Dependency Walker 檢查是否丟失 DLL。
Dependency Walker 檢查是否存在無效的程序文件或 DLL。
Dependency Walker 檢查導入函數和導出函數是否匹配。
Dependency Walker 檢查是否存在循環依賴性錯誤。
Dependency Walker 檢查是否存在由於針對另一不同操作系統而無效的模塊。
通過使用 Dependency Walker,您可以記錄程序使用的所有 DLL。這可能有助於避免和更正將來可能發生的 DLL 問題。當您安裝 Microsoft Visual Studio 6.0 時,Dependency Walker 將位於以下目錄中:
driveProgram FilesMicrosoft Visual StudioCommonTools
DLL Universal Problem Solver
DLL Universal Problem Solver (DUPS) 工具用於審核、比較、記錄和顯示 DLL 信息。下表說明了組成 DUPS 工具的實用工具:
Dlister.exe:該實用工具枚舉計算機中的所有 DLL,並且將此信息記錄到一個文本文件或資料庫文件中。
Dcomp.exe:該實用工具比較在兩個文本文件中列出的 DLL,並產生包含差異的第三個文本文件。
Dtxt2DB.exe:該實用工具將通過使用 Dlister.exe 實用工具和 Dcomp.exe 實用工具創建的文本文件載入到 dllHell資料庫中。
DlgDtxt2DB.exe:該實用工具提供 Dtxt2DB.exe 實用工具的圖形用戶界面(GUI) 版本。
DLL影響
I. 什麼是DNC系統DNC系統包括哪些硬體和軟體組成,各自的功能是什麼
DNC
1 引言
DNC(Distributed Numerical Control)稱為分布式數控,是實現CAD/CAM和計算機輔助生產管理系統集成的紐帶,是機械加工自動化的又一種形式。
目前,DNC系統的研究尚存在以下有待解決的技術問題:①DNC系統體系結構的開放性不強。國內大部分DNC系統局限於單一供應商的製造設備,平台之間可移植性差,不同應用程序互操作能力有待提高,不利於系統集成;②DNC系統通信結構多為點對點式,或採用區域網加點對點式,不能很好地解決通信競爭問題; ③DND系統與NCP和CAD的介面功能還很弱;④DNC系統控制軟體可重用性不強,需要進行面向對象設計和實現。本文提出了基於CORBA(通用對象請求代理結構)的車間層控制系統中DNC系統,給上述問題以很好的解答,並實現了軟體的編制及聯機調式。
2 控制系統體系的結構
DNC系統是基於CORBA車間層控制系統的一個功能單元,現在的企業面對的是一個多變的需求環境,因而車間層控制系統面對的加工任務也是多變的。這種變化包括生產零件的品種、類型、規格、產量和交貨期等多個因素的變化以及加工工藝路線隨生產任務的不同而變化等。這就需要一個在時間和空間上都開放的車間層控制系統體系結構,以運行於不同硬體環境的異構計算機系統中,同時又能適應新技術的發展,容納新設備的增加。
在基於CORBA的車間層控制系統中,構造車間信息集成和共享的公共平台是核心問題之一,我們採用基於客戶/伺服器結構的分布式控制平台(如 Orbix),既可以將傳統的遞階控制結構變換成更適合信息集成的分布或控制結構,又可適應不同產品製造過程(離散製造或連續製造)中統一的生產管理和組織要求。
車間層控制系統總體結構分為三層:底層為系統支持層,由分布式計算環境和異構網路集成系統兩個子層構成,提供底層的計算機系統、網路系統和數據系統等系統級功能;中間層為開放式分布處理層,提供統一的集成通信服務,由開放式分布處理平台和應用程序介面組成,最上層為信息集成層,支持多客戶/伺服器的分布式多資料庫集成系統,將現有的應用和數據信息集成到系統中。為實現控制結構的分布、資料庫的分布以及系統功能的分布,提出的車間層控制系統軟體採用基於 CORBA規范的分布式對象體系結構。
CORBA規范主要特點是實現軟體匯流排結構。所謂軟體匯流排的功能,就是起到類似於計算機系統硬體匯流排的作用,只要將應用模塊按匯流排規范作成軟插件,插入匯流排即可實現集成運行。實現軟體匯流排的核心系統稱為ORB(對象請求代理器),它不僅支持標準的OMG對象模型,還具有分布進程管理和通信管理功能。此外, CORBA定義了IDL(Interface Definition Language)語言,以描述軟體匯流排上的插銷。IDL提供了對成員系統的封裝和成員系統之間隔離,任何成員系統作為一個對象,通過IDL對其介面參數進行定義和說明,就可接到ORB上,為其它系統提供服務或向其它系統提出請求,達到即插即用效果。
車間層控制系統劃分為許多獨立的功能單元,每個功能單元對應於一個包含功能介面定義和實體的抽象對象,每類對象的介面由屬性和操作組成,由IDL定義的其它功能單元可以透明訪問的服務以調用該對象的私有數據,具體功能的實現被封裝在實體里。我們將每類對象按照功能劃分成若干個子對象,將其設計成為可以直接插在CORBA軟體匯流排上的對象插件。這些對象插件按照各層客戶/伺服器結構組成整個平台系統。這種結構可以帶來長遠的利益,既能迅速增加對新的DBMS 的應用、增加新的用戶界面,又能升級支持各種新功能。
3 DNC系統的地位及功能
DNC系統作為車間層控制系統的一個功能單元。
DNC系統功能包括①NC程序及數據的傳遞,以某種通信協議(如Philip532等)實現通信功能;②機床狀態採集和上報;③根據工序計劃,自動分配NC程序及數據到相應機床;④刀具數據的分配與傳遞。
DNC系統軟體的功能模型,其中NC數據管理的主要功能是對數控數據進行管理,主要有數控數據的顯示、插入、修改、刪除、更新、鎖定(不允許更改)和列印等操作;NC數據執行的主要功能有:數控數據在計算機和機床之間的傳送、刪除機床上的數控數據、啟動機床上的數控程序、隨時從機床設備獲得工作狀態信息並存入資料庫,作為運行數據採集模塊評價加工過程的根據;DNC通訊介面通過DNC協議和數據鏈路協議建立單元控制系統和CNC的連接。
4 DNC系統軟體體系結構
基於CORBA的DNC系統軟體的實現平台建立在車間層控制系統平台的基礎上。我們將DNC系統體系結構劃分為三層的客戶/伺服器結構,以將表示邏輯、業務邏輯和數據處理邏輯明確劃分開來。為此,表示層用來表示信息和收集數據,此處為由VB實現的可移植的DNC人機介面;業務層響應用戶(或其它的業務服務)發來的請求,執行某種業務任務,此處為由VC++來實現DNC應有程序及NC數據管理應用程序;數據層包括數據的定義、維修、訪問和更新以及管理,並響應業務服務的數據請求,此處為經IDL功能介面定義封裝的NC局部資料庫(Access)伺服器。這些層並不一定與網路上的具體物理位置相對應,它們只是概念上的層,藉助這些概念可以開發出健壯的、基於組件的應用程序。
使用圖3所示模型,可以把應用程序的需求分解成明確定義的服務。在定義了服務之後,需要進一步創建具體的物理組件來實現它們。根據性能和維護的需求、工作量、網路帶寬以及其它因素,可以在網路上靈活地部署這些組件。
5 DNC系統軟體的數據模型
DNC系統軟體中涉及到數據實體包含四類:①與製造設備硬體相關的數據實體(如機床等);②與人機通訊相關的數據實體(如通訊協議實體和串口通訊實體); ③數控數據實體(如NC程序號、刀具號、工序號);④輸入操作指令或派工單實體。採用面向對象方法將上述實體抽象成為類,可分為能力單元類、NC機床類、 NC控制器類、通訊協議類、終端伺服器類、串口通訊類、NC程序類等。
DNC應用程序中的對象從這些類中繼承下來,每個對象的方法即該對象的成員函數根據相應的功能需求來定義。下面以NC機床類的定義為例:
‖ncmach.h -NC Machine Class definations
‖NC Machines are part processors.For this class,a part is loaded,
‖a NC file is downloaded to the device,and the machine is started.
class MACHINE-TOOL{
char* CurrentNCFile; ‖currently loaded NC file
int FixtureStatus; ‖fixture status
public:
MACHINE-TOOL();
char* getCurrentNCFile();
void setCurrentNCFile(char�F);
Int getFixtureStatus();
void setFixtureStatus(int S);
virtual int processPart(char� PartName);
virtual int downloadNCFile(char�File);
virtual int stopMachine();
virtual in graspPart();
virtual int releasePart();
};
6 DNC系統的物理配置基本結構
基於CORBA的車間層控制系統需要兩種層次的互連。第一層是利用計算機區域網技術和協議軟體把由異構計算機組成的車間層控制器、設備控制器等互連起來,第二層是在這一互連的基礎上,實現各節點、各被控的異構製造設備(如加工中心、機器人、PLC等)之間的信息交互,這種交互通過製造信息規范(MMS)實現。作為車間層控制系統的一個重要組成部分,本文DNC系統的物理配置基本結構如下圖所示,主計算機通過網路介質(具有獨立IP地址的終端伺服器)分別連接多台CNC系統實現NC程序的裝卸、刀具數據的傳遞、操作命令的下達和狀態信息的反饋。這是一種通過區域網連接起來的通信結構,它具有包括物理層、數據鏈路層、傳輸層及應用層等的四層結構,其中數據鏈路層採用LSV2通訊協議,傳輸層採用DNC協議(如SINUMERIK或PHILIPS協議)。
J. 《人工智慧機器人學導論第二版》pdf下載在線閱讀全文,求百度網盤雲資源
《人工智慧機器人學導論第二版》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1EJMFYJcQozFYjHzNtmeG5Q