公司里的老项目,是用VB6写的,引用部件一开始好好的,某时某刻突然在开发环境加载项目中出错,每次都需要把控件单独拉一遍,保存后再打开又不行了。
如此反复,超级奔溃。错误:VouchList2 的类 U8VouchList.VouchList 不是一个已加载的控件类。
经过度娘以及手工尝试,发现还是有解决方案的。
原因可能是加载环境的时候,无法正确加载到ocx组件,导致有引用该组件的部分都会出错。
解决方案:
将OCX组件在cmd以管理员方式进行重新注册,注册语句为“regsvr32 XX\XX\U8VouchList.OCX”,正常的话会跳 注册成功。如果没有,很大可能是没有通过管理员方式运行的权限不足导致。
成功后,加载项目。还是报错,不管,直接把 部件里面vouchlist去掉,再重新引入部件。保存项目,即可。
重新打开,加载项目,已经成功。
后记:
第二天发现,已经引用过的在前台是没办法删除部件引用的。可以用记事本打开项目的vbp文件,从中找到u8vouchlist.Ocx的引用记录,删除对应行,然后重新引用。
通过删除重新引用的操作,发现是引用的ocx版本不一致导致的。原来文件上的ocx组件是2.4版本,而我本机上的是2.3版本 ,所以老是不对。或许,这才是比较根本的不同吧。