为BCG界面库的记忆特性所晕倒

同事使用BCGControlBarPro处理界面,今天在修改菜单资源时却发生一件很奇怪的事情:无论怎么修改,程序运行后始终显示的还是改动以前的菜单,多次清空临时文件、生成文件以及重新编译也无济于事。同事为此折腾了一个上午,郁闷得不行。

我用UltraEdit搜索了一下整个工程,并没有发现以前的字符串资源,因此排除了是编译器的问题。不是编译器的问题,那么就只能是BCG的问题了,我怀疑是BCG对资源进行了“记忆”处理,为了验证这一想法,我让同事将新生成的程序拷贝到一台没有使用过该程序的机器上,结果显示正常。

为了弄个究竟,我借助文件系统监视工具(FileMon)以及注册表监视工具(RegMon)对同事的程序进行监视,结果发现BCG在注册表的HKCU的Software目录下会以应用程序名建立一个注册表项,里面保存了程序的界面参数,删掉该注册项程序便能正常工作。困扰同事的问题终于水落石出。

后来我上网搜了一下,发现为此问题困苦不堪的朋友还不少,解决的方式是通过BCG提供的CleanState方法来清除掉缓存的数据。我没有用过BCG,但我对这样的处理感到很不理解,这样做的意义何在?不管什么目的,在实际应用中这都是一种很糟糕的设计。不过,话说回来,也许BCG的设计者真有什么特别的考虑,那还是等我以后什么时候接触到BCG再说吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值