2013-03-05 30 views
2

我有一個VB6 ActiveX控件項目(創建一個.OCX),它有幾個用戶控件。控件由EXE(也是VB6)加載。當我直接運行EXE時,它運行正常,但是當我嘗試在調試器中運行它時(我需要單步執行代碼),它不能加載用戶控件(.ctl),給我「Class not registered 。尋找與CLSID對象:...「消息vb6 ocx項目 - 可以直接運行EXE,不在調試器中

我有二進制兼容性設置(保留所有舊的GUIDs),我看到在註冊表中的類,一切看起來不錯 - 只是不運行調試器。

請幫忙嗎?

+0

這兩個項目是否作爲項目組打開? – Bob77 2013-03-05 22:37:11

+0

不,該項目是爲OCX的,EXE在調試 - >開始程序 – 2013-03-05 22:51:04

+0

好的,那麼它聽起來像兼容性已被打破。錯誤對話框是否顯示完整的CLSID?如果是這樣,它是否符合你在註冊表中看到的內容?你運行的VB6 IDE升高? – Bob77 2013-03-05 22:56:07

回答

2

我已經使用VB6十多年了。問題是VBP項目引用與OCX用戶控件的最新版本不同步。只需將該項目作爲一個組或單獨打開該EXE項目並單擊Project-> Components。

您現在將看到兩件事之一。參考文獻將無效,或您選擇了有效的參考文獻。無論哪種方式,取消選中參考並點擊確定(不要在此操作中重新選擇它..相信我)。現在,關閉對話框並返回到Projects-> Components,現在從列表中選擇您的OCX控件。這將解決您的問題。如果您的OCX不在列表中,請先重新創建,然後重試。

這是一個未公開的VB6 IDE錯誤。即使使用VB6 SP6,它也沒有解決。

+0

非常感謝!!最後,我開始測試你的建議,看起來像它,工作!在EXE項目中取消/關閉/保存/打開並檢查那個組件我得到了OCX項目停止在斷點處。誰會想到... :-) – 2013-05-01 19:19:01

相關問題