本帖最后由 鱼儿游游 于 2013-6-26 03:45 编辑
问题表述:如果我们在编写程序时,如用到了ListView、TreeView、FlexGrid等控件,在不同电脑(甚至是本机)使用时,有可能会遇到一个很大的问题就是“无法装载这个对像,因为他不适用于这台计算机”。 原因分析:是程序用到的控件(如: MSCOMCTL.OCX,一般在C:\WINDOWS\system32目录下)的版本不一致造成的。造成控件版本不一致的主要原因如下: 1、调试程序与用户使用的环境不一致(如程序代码在WINDOWS XP下调试,在WIN7下运行),造成运行程序时有关控件(如:MSCOMCTL.OCX )的版本高于(或低于)调试程序时的版本。 2、系统打了升级补丁。 解决方案: 1、.取得最新版本的控件,用新版本覆盖旧版本,手工注册控件。 如:先把MSCOMCTL.OCX(目前最新版6.1.98.34)复制到C:\WINDOWS\system32目录下,然后注册控件(方法:点"开始-运行" 输入:Regsvr32 MSCOMCTL.OCX)。 2、编写代码,让程序能自动引用调试时的有关控件(要求把有关控件和程序一起提交给用户),让程序自动注册有关控件。运行时,程序引用自带版本的控件。为此,我写了一个自动注册控件的示例,能很好地解决这个困扰。具体方法是:在程序运行时,先执行这个自动注册控件的函数(功能是:判断有关控件是否已注册,如没注册,则自动注册)。
使用该函数时,要注意的是:最好在放到宏里执行,即:没打开任何窗体前运行(避免窗体有用到有关控件 )。
|