解決VB6.0中不能載入MSCOMCTL.OCX的錯誤提示

瑞文軟體發表於2018-09-06

VB6.0畢竟是很古老的開發工具了,其對所使用的第三方元件依賴性比較強,例如在開啟從其它電腦上拿來的VB6.0的軟體(系統)的工程檔案(原始碼)時,經常會遇到"不能載入MSCOMCTL.OCX“的錯誤提示,如圖所示:

產生這種問題的可能性很多,例如目標電腦上MSCOMCTL.OCX元件的版本與開發該軟體的電腦上的該元件版本不一樣(可能性很大);目標電腦上沒有該元件;該元件檔案已經被破壞或者是不可讀等。下面針對第一種可能性給出解決方案(如果是後面的幾種可能性,則還需要自己到網上下載或者是到原電腦上覆制一個該元件的檔案放在指定的資料夾下:32位作業系統放在.\Windows\System32資料夾下,64位作業系統放在.\Windows\SysWOW64資料夾下。然後同樣需要按照下面的方法來操作才可以)。

 

方法一:

在上面的對話方塊當中一定要點選“是”!然後在下面的對話方塊當中點選“確定”(該對話方塊就提示了使用MSCOMCTL.OCX元件的窗體名稱,如果後面還有類似的提示,一律點選“確定”):

如果還遇到下面的提示框,一律點選“確定”:

最後開啟了工程(原始碼),我們可以看到使用了MSCOMCTL.OCX元件的窗體已經變成了這個模樣:

而正常情況下該窗體應該是這個模樣的(此處以可執行檔案的執行截圖為例來對比):

由上面兩張圖對比可以知道,該窗體裡面因為MSCOMCTL.OCX元件的載入錯誤問題,已經讓窗體的“工具欄”和“狀態列”等控制元件都不見了,而再看VB6.0裡面的“工具箱”處,發現很多元件的圖示都不見了:

這是因為該MSCOMCTL.OCX元件可以為VB6.0提供8種控制元件(上圖中多圈了一個組合框控制元件了),即:工具欄(Toolbar),狀態列(StatusBar),影象列表(ImageList),選項卡(TapStrip),進度條(ProgressBar),樹形框(TreeView),滑動塊(Slider),影象組合框(ImageCombo),而開啟原始碼的時候隨著MSCOMCTL.OCX元件的載入失敗,自然這些控制元件的圖示也就消失了,對應的窗體裡面那些控制元件也都變成了空白的PictureBox了。

 

怎麼解決這個問題呢?

首先在開啟的VB6.0工程裡面(即軟體的工程裡面)一定要關閉所有新增了MSCOMCTL.OCX所提供的控制元件的窗體(包括程式碼窗體),否則的話經過下面的步驟儲存了以後,那些窗體裡面所有之前出問題的控制元件就被空白的PictureBox替代了。

然後右鍵點選“工具箱”的空白處,選擇“部件”,如圖所示:

在開啟的窗體裡面點選“瀏覽”按鈕:

然後在開啟的對話方塊裡面“檔名”處輸入完整的“MSCOMCTL.OCX”(或者是輸入一部分後從下拉選單裡面選擇):

然後點選“開啟”按鈕:

在返回的窗體裡面點選“確定”按鈕:

此時會發現“工具箱”內那些丟失的控制元件又“回來了”:

然後關閉VB6.0開發環境,在彈出的對話方塊裡面選擇“是”:

然後在再開工程檔案(原始碼)的時候,發現問題已經解決了,沒有再彈出載入元件錯誤的提示了!

 

方法二:

以上方法可以解決絕大多數系統環境下所遇到的載入MSCOMCTL.OCX錯誤的問題,尤其是當作業系統是Windows7或者XP的時候,可以說能百分之百的解決問題,但是當作業系統是Windows8(8.1)或者是Windows10的時候,如果在上述方法當中新增MSCOMCTL.OCX控制元件的時候遇到了卡死,或者是“訪問登錄檔錯誤”等的提示,不能繼續使用上面的方法解決問題的時候,就需要使用下面的方法來解決問題了。

首先把已經開啟的原始碼工程(VB6.0開發環境)關閉了(注意:關閉的時候千萬不要儲存,也就是提示“儲存檔案的更改”那裡一定要選擇“否”,否則的話那些出問題的窗體可能就會儲存了出問題的狀態而無法挽回了)。

然後右鍵點選字尾名為.vbp的工程檔案,選擇“開啟方式”,然後在開啟方式的選項裡面如果有“記事本”的話,則選擇此項,反之的話選擇“選擇預設程式(C)”這一項:

然後在開啟的窗體裡面選擇“記事本”,如圖所示(如果推薦的程式處沒有的話,就在“其他程式”下面尋找):

然後在上圖中去掉“始終使用選擇的程式開啟這種檔案”的鉤,然後點選“確定”按鈕,這樣就使用記事本開啟了該工程檔案,然後點選記事本當中的選單項 編輯——查詢:

 

在開啟的“查詢”對話方塊裡面輸入“MSCOMCTL.OCX”,然後點選“查詢下一個”按鈕:

此時可以看到找到的內容左邊是“#2.1#0”的樣子:

把上面字串裡面的“2.1”修改為“2.0”,然後關閉文件,儲存,如圖所示:

然後再採用同樣的方法修改所有使用了MSCOMCTL.OCX元件提供的控制元件的窗體裡面的內容:右鍵點選相關的窗體frm檔案,選擇“開啟方式”——“記事本”(或者是沒有記事本選項的話,使用“選擇預設程式”指定記事本),如圖所示:

同樣採用記事本里面查詢的方法找到“MSCOMCTL.OCX”所在的那一行文字:

此時看到其左邊的內容也是“#2.1#0”:

同樣把“2.1”修改為“2.0”,然後關閉記事本並儲存:

然後再開啟工程檔案(原始碼)看看,這樣問題應該解決了,應該不會再彈出那個“不能載入MSCOMCTL.OCX”的提示了。

 

後續經驗:

①在Windows8(8.1)或者Windows10系統上開啟VB6.0的原始碼的時候,經常會遇到彈出很多的錯誤提示的情況,除了上面所說的那個不能載入MSCOMCTL.OCX的錯誤提示之外,還可能有不能載入其它元件的錯誤提示,此時不用管它,一直點選“確定”和“是”,等到完全開啟了原始碼以後,再關閉了VB6.0軟體(千萬不要儲存),然後再開啟的時候可能就什麼錯誤提示也沒有了,能全部開啟了,所有的元件都正常了(這種情況我已經遇到了很多次,目前還不能解釋是什麼原因)。

②如果採用了上面的兩種方法以後還是不能解決問題,建議:檢查在方法二當中,是不是把所有的使用到MSCOMCTL.OCX提供的控制元件的窗體使用記事本開啟以後把裡面的“2.1”都修改為“2.0”了?

③如果進行了上面的所有的操作,問題最終還是不能解決的話,或者是還有其它元件載入錯誤的提示的話,那多半是安裝的VB6.0有問題(或者是在VB6.0的安裝過程中被某些諸如360之類的防毒軟體誤報阻止而導致很多元件安裝失敗),此時可以先下載一個VB6.0的SP6升級包安裝看看,如果問題依舊,或者是SP6升級包都安裝失敗了,那一定是安裝的VB6.0軟體有問題,解除安裝了以後重灌VB6.0軟體吧(而且通常安裝成功了SP6升級包以後可以解決很多除了MSCOMCTL.OCX之外的元件載入錯誤的問題),下面提供VB6.0的SP6升級包的下載地址(百度網盤):http://pan.baidu.com/s/1kTqgUJd

④有的時候很奇怪,剛開始開啟原始碼的時候,除了提示MSCOMCTL.OCX載入錯誤之外,還有其它的很多元件載入錯誤的提示,但是解決了MSCOMCTL.OCX載入錯誤的問題以後,其它的元件載入錯誤的提示也跟著消失了(目前還不知道是什麼原因)。

下面提供VB6.0軟體的安裝方法介紹:https://www.cnblogs.com/rewwensoftware/p/9563117.html

 

注:本部落格內所有的文章均為原創,歡迎轉載,但轉載時請註明“瑞文軟體”的字樣,謝謝!

相關文章