在本教程第二部分的最后,我們遇到一個小問題,但確切地說,那實際上是一個大問題。如果有時間的話,這個問題應該值得我們花大精力去研究。
還記得我們是怎樣遇到那個問題嗎?當時,我們先編譯ActiveX DLL,然后編譯使用該DLL的測試程序。接著,我們重新編譯DLL,那是因為假設DLL中的內容需要修改。然而,再運行測試程序時,卻出現錯誤!
雖然,我們可以重新編譯測試程序,以便該程序能正確運行。但是,如果這里不是VB程序,而是Excel數據表或是C++統計程序在使用該DLL,那么是不是每次對ActiveX DLL進行小小的修改后都要重新編譯這些程序呢?
是的,肯定不能這樣。
因為經驗告訴我們,這是一個兼容性問題。所以,可以這樣處理:
啟動Visual Basic,打開Northwind工程;
選擇"Project"->"Northwind Properties"菜單;
單擊"Component"標簽;
瀏覽一下"Version Compatibility"的頁面內容,可以發現有三個選項,F解釋一下:
No Compatibility —— 每次編譯時,用戶COM組件都被標有一個新的標記,這就意味著程序只能使用舊標記(以前版本)的DLL。
Project Compatibility —— 每次編譯時,用戶COM組件不是總會被標有一個新的標記。如果是的話,任何當前使用的應用程序都會失敗。事實上,只有當當前工程和已經編譯過的DLL工程有較大不同時才會這樣。
Binary Compatibility —— 每次編譯時,應用程序總試圖保存前一個編譯過的DLL標記,這樣就確保了使用的應用程序不會出現藍屏的死機現象。但是,若當前將要編譯的DLL和以前編譯過的DLL區別太大,則新的標記就會被標上。
讓我們測試一下上述論點:
打開本教程上一部分的測試程序;
重新編譯一下;
試運行一下,應該能正常工作;
打開ActiveX DLL工程;
將其屬性設置為Binary Compatibility;
重新編譯一下該DLL;
試運行一下測試程序,應該能正常工作。
好了,看起來似乎解決了問題。但當重新編譯DLL后,大多數開發人員將會陷入另一種不兼容的境地。
難道就沒有更好的解決辦法嗎?我們暫時將這個問題放到一邊!
您可訪問下列站點以獲得更多的內容:
www.PylonOfTheMonth.co.uk.
文章來源于領測軟件測試網 http://www.kjueaiud.com/
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月