|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-03-29, 02:40 AM | #1 |
榮譽會員
|
微軟WindowsServer2003將終結「DLL惡夢」
Q:windows 開始................ 這種私有dll。。win95恐怕就有了 我的理解,這個改進,是給dll加上了版本號,以後LoadLibraryEx這樣的函數大概可以加上一個版本號作為參數了。 其實windows下的庫檔案管理還是可以的,真正衝突的時候並不多,最多是垃圾檔案多點。。。linux下面才是亂七八糟。的確早就有了版本號機制,但是用起來頭疼的很。。 A: 95下的不能叫私有dll(private dll). 裝載DLL都是先搜索當前目錄. 因此在95,98下如果軟體自帶了DLL, 也可能會用其自帶的版本. 但問題是95,98對於同一個模塊名的DLL只載入執行一個. 如果你的軟體是第一個需要載入執行某個dll的程序, 而且自帶了這個dll, 那你就用了自帶的. 隨後所有使用這個dll的程序都會動態連接到你帶的這個dll. 很可能造成不穩定. 好像win2000還沒出來的時候俺就在不知道什麼地方看過類似的消息!說什麼軟體需要的什麼檔案統統都要軟體自帶!不使用系統檔案了!讓俺白激動了好久!(不過2000的確比98強的多!但是沒有達到那種效果!)現在又這樣說了!估計啊!等這個技術成熟的時候windows都成2005了!不要不相信!很有可能哦! Windows 2000 確實是支持私有DLL的, 譬如MSVCRT.DLL, 如果軟體的安裝目錄中有, 執行時就會用軟體自帶的DLL, 而不會載入執行系統目錄下共享的DLL. 這已經大大提高了應用程序在Windows 2000下的相容性和穩定性. 但這不是強制的, 應用軟體開發者也可以不把公用的DLL打包在軟體安裝包內. 具體的可以到Microsoft的網站上看一下Windows 2000 private dll的解釋. Q: 軟體A和軟體B共用一個DLL,現在可以變成兩份不同的DLL? 這樣DLL當初存在的意義都沒有了,是嗎? A: 不是這樣的。 主要是利用.net技術,通過為DLL設計強名字,實現DLL的版本控制。 所以說要付出更多的硬碟空間作為代價 ========================== 據微軟公司稱,Windows Server 2003將結束一直困擾Windows用戶和管理人員的惡夢,過去數年來,這一問題欞P能夠讓不同應用軟體共享的「動態連接庫」(DLL)日益成為最令人頭疼的事之一。 當安裝使用昇級版DLL的應用軟體時,就會出現問題。如果原來的應用軟體不能與昇級版DLL相容,用戶就會得到錯誤訊息。由於Windows和Windows應用軟體沒有DLL版本號的概念,因此這一問題很難搜尋。 以前,由於硬碟和記憶體比較昂貴,元件在電腦都會被不同的軟體共享。在過去的數年中,硬碟和記憶體的價格已經大幅度下降,硬碟空間已經不再是一個需要優先考慮的問題,但是,隨著應用軟體大小和模塊化程度不斷增加,DLL共享問題並沒有得到解決。但是,通過在Windows Server 2003中引入一種能夠阻止新應用軟體安裝的DLL覆蓋仍然在被現有的應用軟體使用的DLL檔案的系統,微軟公司希望這一被稱作「DLL惡夢」的問題能夠得到解決。 微軟公司負責.Net和開發者工具的經理薩米爾表示,這一個經典問題,這一問題困擾我們已經好多年了。我們發佈的應用軟體需要用到元件A,其它人發佈的應用軟體則使用了新版元件A,這就可能給我們的應用軟體帶來問題。他說,整合在Windows Server 2003中的Microsoft .Net 1.1將支持所謂的強綁定。強綁定意味著一個應用軟體或元件能夠綁定到另一個元件的特定版本,使用戶能夠重複使用元件或獨立地使用它們。 .Net 1.1將向Windows Server 2003操作系統提供微軟穩定之為「Global Assembly Cache」的技術,這是一台電腦上共享的所有.Net元件的倉庫。薩米爾表示,當在一台電腦上安裝一個元件時,Global Assembly Cache會檢查其版本、公共密鑰、語言訊息,並為該元件新建一個強名字。然後,該元件會在Global Assembly Cache中註冊,並根據其強名字進行索引,因此至少從理論上講,不同版本的元件(DLL檔案間)不會再發生混淆。 Windows 2003 Server還將使用規則確保應用軟體能夠找到正確的元件。系統會首先搜尋本地版元件,然後在Global Assembly Cache進行搜尋,找到與所需求元件的強名字精確匹配的元件。如果不能成功,系統將使用啟髮式策略搜索次好的元件。但一般情況下,應用軟體總是能夠找到最適合自己的元件。另外,在特殊情況下,系統管理員也能夠暫覆蓋這些規則。 Windows Server 2003中的另一項功能是.Net元件將不再有註冊策略。薩米爾說,這意味著一台服務器上的元件可以被方便地拷貝到另一台服務器上。微軟公司將這一功能稱為「xcopy」,這也意味著用戶能夠拷貝而無需重新安裝應用軟體。 |
送花文章: 3,
|