技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 385
|
問(wèn)題表述:如果我們?cè)诰帉懗绦驎r(shí),如用到了ListView、TreeView、FlexGrid等控件,在不同電腦(甚至是本機(jī))使用時(shí),有可能會(huì)遇到一個(gè)很大的問(wèn)題就是“無(wú)法裝載這個(gè)對(duì)像,因?yàn)樗贿m用于這臺(tái)計(jì)算機(jī)”。
原因分析:是程序用到的控件(如: MSCOMCTL.OCX,一般在C:\WINDOWS\system32目錄下)的版本不一致造成的。造成控件版本不一致的主要原因如下:
1、調(diào)試程序與用戶使用的環(huán)境不一致(如程序代碼在WINDOWS XP下調(diào)試,在WIN7下運(yùn)行),造成運(yùn)行程序時(shí)有關(guān)控件(如:MSCOMCTL.OCX )的版本高于(或低于)調(diào)試程序時(shí)的版本。
2、系統(tǒng)打了升級(jí)補(bǔ)丁。
解決方案:
1、.取得最新版本的控件,用新版本覆蓋舊版本,手工注冊(cè)控件。
如:先把MSCOMCTL.OCX(目前最新版6.1.98.34)復(fù)制到C:\WINDOWS\system32目錄下,然后注冊(cè)控件(方法:點(diǎn)"開(kāi)始-運(yùn)行" 輸入:Regsvr32 MSCOMCTL.OCX)。
2、編寫代碼,讓程序能自動(dòng)引用調(diào)試時(shí)的有關(guān)控件(要求把有關(guān)控件和程序一起提交給用戶),讓程序自動(dòng)注冊(cè)有關(guān)控件。運(yùn)行時(shí),程序引用自帶版本的控件。為此,我寫了一個(gè)自動(dòng)注冊(cè)控件的示例,能很好地解決這個(gè)困擾。具體方法是:在程序運(yùn)行時(shí),先執(zhí)行這個(gè)自動(dòng)注冊(cè)控件的函數(shù)(功能是:判斷有關(guān)控件是否已注冊(cè),如沒(méi)注冊(cè),則自動(dòng)注冊(cè))。
使用該函數(shù)時(shí),要注意的是:最好在放到宏里執(zhí)行,即:沒(méi)打開(kāi)任何窗體前運(yùn)行(避免窗體有用到有關(guān)控件 )。
全部代碼在附件里。 |
|