Board logo

Subject: CnWizards 在 Win 10 RS4 Build 17035版本下启动出错,显示资源不足 [Print This Page]

Author: yinsim    Time: 2017-11-11 23:25     Subject: CnWizards 在 Win 10 RS4 Build 17035版本下启动出错,显示资源不足

测试环境:
CnWizards版本:CnWizards 1.1.3.915 Unstable
Windows 版本:Windows 10 RS4 预览版 Build 17035 x64
Delphi 版本: Delphi DX 10.2 update 1

问题描述:
CnWizards 在 Delphi 启动时报错,显示系统资源不足,并无法在IDE中注册。

原因分析:
CnDesignEditorUtils.pas 中的 procedure Initialize 过程会使用 LoadImage 函数来加载 Windows 系统中复选框的OEM图像资源。并在稍后进行一些运算来确定 CnWizards 一些界面中的勾选与未勾选图像的高度与宽度。
但是某些原因在此版本(17035)使用LoadImage获取后的OBM_CHECKBOXES的图像资源的高度与宽度均为1,而在之后的运算中Check与Unchecked的高度与宽度将变为负数。

临时解决方案:
由于暂时不能确定究竟是Windows RS4的 Bug 还是一项计算中的变更(?),所以暂时可以直接注释掉该 Initialize 过程在此单元中初始化段的引用。
发贴在此,供也有此问题的人参考。
Author: Passion    Time: 2017-11-13 15:05

非常感谢详尽的调查,我也看一下是否能避免。
Author: Passion    Time: 2017-11-14 16:31

目前我们在init部分也加了一层保护,没有加载到系统图片时,自己塞两个图片进去凑合着用了。
此保护机制将在下一个版本集成。
Author: yinsim    Time: 2017-11-14 21:21

老刘反应好快,谢谢对应。
应该是Bug了,反馈中心已经有很多人反馈了这个问题,而且这个影响面很广,不少的程序,甚至很多Inno Setup制作的安装程序连项的复选框也没有办法显示。
Author: Passion    Time: 2017-11-15 12:02

看来API不能全信。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0