請問各位大神,我原來有個VB6的程式,參考了一個isbutton的第三方控制元件,原來程式用得挺好的,現在源程式在另外的機子上打開發現凡是參考了這個控制元件的表單都出錯,無發加載這個控制元件,但是控制元件的位置大小都還有一個矩形在,點上去,控制元件的名字也能在屬性視窗看見,好像是提示你這里有個控制元件,但是我加載不了,不知道是什么問題,有誰遇到過嗎?請大神們指點迷津啊!
uj5u.com熱心網友回復:
新機器上控制沒裝,把這個控制元件的ocx檔案復制到新機器上去,然后注冊一下regsvr32 X:\xxxx\......\xxxx.ocx
uj5u.com熱心網友回復:
我參考的是ctl用戶控制元件,不是ocx,如果是ocx,我知道是要注冊一下的。
uj5u.com熱心網友回復:
也會生成ocx的uj5u.com熱心網友回復:
第三方控制元件,必然要注冊的咯uj5u.com熱心網友回復:
你說的“ctl用戶控制元件”,是指的工程中使用的“第三方控制元件原始碼”吧!
那么: 你是用的“第三方工程”(控制元件是另一個工程),還是“控制元件包含在EXE工程內”?
如果是“第三工程“,那么“控制元件工程”與“EXE工程”要形成“工程組”才行!
打開工程時,要打開那個“工程組”,不能直接打開其中的EXE工程。
注意“工程組”和“工程”的圖示不一樣的,
下圖左邊的是“工程”圖示,右邊的是“工程組”圖示。

如果是“控制元件包含在EXE工程內”,那應該是不會有什么問題的。
萬一“真的有問題”,那你打開工程后,再打開“控制元件設計器”看看有沒有提示出錯資訊?
(在工程資源管理器視窗中雙擊相應的ctl專案)
如果不會提示錯誤,就把設計器關閉了,再把控制元件重新畫一下、改成對應的控制元件名吧。
uj5u.com熱心網友回復:
哦,之前你是用工程組,一個exe工程參考一個ocx工程么?如果是這個情況,你描述的現象有幾種可能
1、你只打開了exe工程,但系統中沒有OCX的注冊,解決的辦法要么開工程組,要么把OCX專案編譯出來注冊。
2、你只開了exe專案,系統里面也注冊了OCX,但有可能因為OCX工程沒有設定兼容之前版本的OCX檔案,導致新編譯的東西產生了新的class id,導致EXE專案找不到OCX。解決的辦法是開工程組,參考ocx工程,或者重新用二進制兼容的方式設定OCX再注冊,然后exe工程重新參考。
OCX和DLL工程強烈建議設定和編譯結果的二進制兼容,以免出現各種詭異的問題。
uj5u.com熱心網友回復:
我這個程式源代碼拷貝到u盤,然后在不同機器上面打開,有一臺機器是沒有問題的,這臺是win7 32bit,系統,其他幾臺電腦不同程度的有問題,win1064bit系統的電腦中打開源代碼可以加載ctl控制元件,但是appwiz.ocx控制元件即使注冊了也添加不上,在ide中表單顯示正常,控制元件都在,一運行,表單中所有控制元件沒有了,就一個光禿禿的灰色表單;另一臺win7 32bit系統,就是出現我在上面提出的問題,反正不同電腦出現的問題不一樣,很崩潰。uj5u.com熱心網友回復:
我這個程式源代碼拷貝到u盤,然后在不同機器上面打開,有一臺機器是沒有問題的,這臺是win7 32bit,系統,其他幾臺電腦不同程度的有問題,win1064bit系統的電腦中打開源代碼可以加載ctl控制元件,但是appwiz.ocx控制元件即使注冊了也添加不上,在ide中表單顯示正常,控制元件都在,一運行,表單中所有控制元件沒有了,就一個光禿禿的灰色表單;另一臺win7 32bit系統,就是出現我在上面提出的問題,反正不同電腦出現的問題不一樣,很崩潰。
注冊命令需要在管理員模式下注冊
uj5u.com熱心網友回復:
我這個程式源代碼拷貝到u盤,然后在不同機器上面打開,有一臺機器是沒有問題的,這臺是win7 32bit,系統,其他幾臺電腦不同程度的有問題,win1064bit系統的電腦中打開源代碼可以加載ctl控制元件,但是appwiz.ocx控制元件即使注冊了也添加不上,在ide中表單顯示正常,控制元件都在,一運行,表單中所有控制元件沒有了,就一個光禿禿的灰色表單;另一臺win7 32bit系統,就是出現我在上面提出的問題,反正不同電腦出現的問題不一樣,很崩潰。
你說的那個“ocx即使注冊了,也添加不上”,估計是VB6中沒有正常加載第三方控制元件吧!
你要注意:64位系統中,要把這個ocx放到SysWOW64目錄中去注冊,不是System32目錄!
你試試“以管理員身分運行”啟動VB6,新建一個標準EXE工程,再把你這個控制元件添加到工程中。
這樣應該是可以正常使用控制元件的。
然后,把剛才這個工程關閉了(當然不用保存它),再去打開你“需要的那個工程”試試。
uj5u.com熱心網友回復:
如果在EXE工程中,參考另一個“控制元件工程”,如果是以“工程組”的形式直接編譯的話,可能是因“控制元件路徑”不一樣,導致EXE工程中找不到相應的控制元件資訊。
可以嘗試在EXE工程中重新參考一下控制元件。
不過我不太確定這個效果:
因為我使用的用戶控制元件都是直接包含在EXE工程中的,沒有單獨用過“控制元件工程”。
uj5u.com熱心網友回復:
我這個程式源代碼拷貝到u盤,然后在不同機器上面打開,有一臺機器是沒有問題的,這臺是win7 32bit,系統,其他幾臺電腦不同程度的有問題,win1064bit系統的電腦中打開源代碼可以加載ctl控制元件,但是appwiz.ocx控制元件即使注冊了也添加不上,在ide中表單顯示正常,控制元件都在,一運行,表單中所有控制元件沒有了,就一個光禿禿的灰色表單;另一臺win7 32bit系統,就是出現我在上面提出的問題,反正不同電腦出現的問題不一樣,很崩潰。
你說的那個“ocx即使注冊了,也添加不上”,估計是VB6中沒有正常加載第三方控制元件吧!
你要注意:64位系統中,要把這個ocx放到SysWOW64目錄中去注冊,不是System32目錄!
你試試“以管理員身分運行”啟動VB6,新建一個標準EXE工程,再把你這個控制元件添加到工程中。
這樣應該是可以正常使用控制元件的。
然后,把剛才這個工程關閉了(當然不用保存它),再去打開你“需要的那個工程”試試。
如果在EXE工程中,參考另一個“控制元件工程”,如果是以“工程組”的形式直接編譯的話,
可能是因“控制元件路徑”不一樣,導致EXE工程中找不到相應的控制元件資訊。
可以嘗試在EXE工程中重新參考一下控制元件。
不過我不太確定這個效果:
因為我使用的用戶控制元件都是直接包含在EXE工程中的,沒有單獨用過“控制元件工程”。
在6
uj5u.com熱心網友回復:
我這個程式源代碼拷貝到u盤,然后在不同機器上面打開,有一臺機器是沒有問題的,這臺是win7 32bit,系統,其他幾臺電腦不同程度的有問題,win1064bit系統的電腦中打開源代碼可以加載ctl控制元件,但是appwiz.ocx控制元件即使注冊了也添加不上,在ide中表單顯示正常,控制元件都在,一運行,表單中所有控制元件沒有了,就一個光禿禿的灰色表單;另一臺win7 32bit系統,就是出現我在上面提出的問題,反正不同電腦出現的問題不一樣,很崩潰。
你說的那個“ocx即使注冊了,也添加不上”,估計是VB6中沒有正常加載第三方控制元件吧!
你要注意:64位系統中,要把這個ocx放到SysWOW64目錄中去注冊,不是System32目錄!
你試試“以管理員身分運行”啟動VB6,新建一個標準EXE工程,再把你這個控制元件添加到工程中。
這樣應該是可以正常使用控制元件的。
然后,把剛才這個工程關閉了(當然不用保存它),再去打開你“需要的那個工程”試試。
1、在win10的機器里,我是在syswow64下面注冊的ocx,而且注冊成功了的,但是在vb部件選單中想添加就不行了,提示dll錯誤,除此以外,很奇怪,這里ctl控制元件k在表單里顯示正常,在ide中可見,可以編輯,但是一運行,就一片灰,什么都木有
2、然后現在在win7大那臺不能加載ctl控制元件的表單里,我現在只好把原來的ctl控制元件一個個刪掉,重新添加,很費時間,不過總算是可以正常運行了
uj5u.com熱心網友回復:
你說Win10的那臺,IDE中“正常”?但編譯后運行,控制元件沒顯示?
這個事情可奇怪了……
反正我是想不明白。
uj5u.com熱心網友回復:
是不是和平臺有關? 32位的控制元件用在了64位平臺?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/40385.html
標籤:控件
上一篇:VB怎樣讀取CAD里的圖形
