基礎(chǔ)講座之兼計劃
在本教程第二部分的最后,我們遇到一個小問題,但確切地說,那實際上是一個大問題。如果有時間的話,這個問題應(yīng)該值得我們花大精力去研究。
還記得我們是怎樣遇到那個問題嗎?當時,我們先編譯ActiveX DLL,然后編譯使用該DLL的測試程序。接著,我們重新編譯DLL,那是因為假設(shè)DLL中的內(nèi)容需要修改。然而,再運行測試程序時,卻出現(xiàn)錯誤!
雖然,我們可以重新編譯測試程序,以便該程序能正確運行。但是,如果這里不是VB程序,而是Excel數(shù)據(jù)表或是C++統(tǒng)計程序在使用該DLL,那么是不是每次對ActiveX DLL進行小小的修改后都要重新編譯這些程序呢?
是的,肯定不能這樣。
因為經(jīng)驗告訴我們,這是一個兼容性問題。所以,可以這樣處理:
啟動Visual Basic,打開Northwind工程;
選擇\"Project\"-\"Northwind Properties\"菜單;
單擊\"Component\"標簽;
瀏覽一下\"Version Compatibility\"的頁面內(nèi)容,可以發(fā)現(xiàn)有三個選項。現(xiàn)解釋一下:
No Compatibility —— 每次編譯時,用戶COM組件都被標有一個新的標記,這就意味著程序只能使用舊標記(以前版本)的DLL。
Project Compatibility —— 每次編譯時,用戶COM組件不是總會被標有一個新的標記。如果是的話,任何當前使用的應(yīng)用程序都會失敗。事實上,只有當當前工程和已經(jīng)編譯過的DLL工程有較大不同時才會這樣。
Binary Compatibility —— 每次編譯時,應(yīng)用程序總試圖保存前一個編譯過的DLL標記,這樣就確保了使用的應(yīng)用程序不會出現(xiàn)藍屏的死機現(xiàn)象。但是,若當前將要編譯的DLL和以前編譯過的DLL區(qū)別太大,則新的標記就會被標上。
讓我們測試一下上述論點:
打開本教程上一部分的測試程序;
重新編譯一下;
試運行一下,應(yīng)該能正常工作;
就利用這一點讓客戶的站出現(xiàn)在第一頁 打開ActiveX DLL工程;
將其屬性設(shè)置為Binary Compatibility;
重新編譯一下該DLL;
試運行一下測試程序,應(yīng)該能正常工作。
好了,看起來似乎解決了問題。但當重新編譯DLL后,大多數(shù)開發(fā)人員將會陷入另一種不兼容的境地。
難道就沒有更好的解決辦法嗎?我們暫時將這個問題放到一邊!
您可訪問下列站點以獲得更多的內(nèi)容:
.
查看本文來源
宏濟堂小兒消食片與江中小兒健胃消食片服用方法重慶治療子宮內(nèi)膜炎醫(yī)院
免疫力低有什么危害
- Mac磁盤如何同步進行分區(qū)和格式化!
- 美股短線跳水,三大交易者悉數(shù)轉(zhuǎn)跌
- 廣汽集團6月汽車總賣出超23萬輛,同比增長41.16%
- 強強聯(lián)手!金牛區(qū)攜手四川發(fā)展六大賽道共鑄光輝
- 墜崖三十米后沉入河底,貨車駕駛?cè)私^地保命
- 張大千用500兩黃金買到一份情報圖,今成頂級國寶,禁止滯留展覽
- 腌韭花醬,只煎就外行了!多加這2樣,味道更香,放1年都不壞
- 勇士希望應(yīng)運而生戈貝爾 威金斯與庫明加或成為籌碼
- 給羅威納犬修剪指甲的小竅門位置
- 具有憨厚紳士風(fēng)度的英國斗牛犬位置
- 我家蘇格蘭牧羊犬精神不好總吐是什么情況位置
- 羅威納犬有點感冒了應(yīng)怎么辦位置