成立项目组,使用JAVA+PB开发。又听几个同事抱怨电脑不能使用PB ole控件。以前也碰到过类似的问题,没太在意。今天决定解决一下。
问题环境:Windwosxp(sp2,sp3),Powerbuilder8。
以前碰到过类似问题,是由于新安装软件导致,询问了一番,排除了这种情况,然后在网上查询,搜到这样一片文章。
http://search.sybase.com/kbx/solvedcases?id_number=10906461
本文说明了PB在点击insert control时的工作:
1、在 "HKEY_CLASSES_ROOT/CLSID"下查询控件,该控件包括"Control"子建。
2、查询该控件的"ToolboxBitmap32"子键,取得图标信息。
3、调用LoadLibraryEx生成图标信息,写入"HKEY_CURRENT_USER/Software/Sybase/PowerBuilder/8.0/OLE Object Bitmaps/..."
得到如下解决思路:
1、导出"HKEY_CLASSES_ROOT/CLSID" 为clsid.reg
2、运行PB插入OLE控件,报错后退出。
3、导出"HKEY_CURRENT_USER/Software/Sybase/PowerBuilder/8.0/OLE Object Bitmaps/..." 为pbclsid.reg
4、打开pbclsid.reg取得最后一个控件的clsid,在clsid.reg中查找。找到后再查下一个包含"Control"子建的项,则该项的"ToolboxBitmap32"有问题,在正常的电脑上找到此项的正确值更新。
5、循环此操作直到全部改正过来。
本次的错误是:%systemroot%/system32/mstscax.dll
正确的是:C:/WINDOWS/system32/mstscax.dll, 1