如何修复Delphi 12中BRCC32编译时的Allocate failed错误
解决BRCC32编译RC文件时"Allocate failed"错误的方案
针对你在Delphi12中使用BRCC32编译包含150KB多尺寸图标的RC文件时出现的Allocate failed错误,可尝试以下几种解决方法:
精简或拆分图标文件
BRCC32对大体积图标文件的内存分配支持有限。可以用图标编辑工具(如IconWorkshop)去掉图标中不必要的高分辨率版本或冗余颜色深度,将文件大小压缩到100KB以内;也可以把不同尺寸的图标拆分成多个ICO文件,在RC中分别定义,再通过代码在程序中根据场景调用对应图标。替换为微软rc.exe资源编译器
微软的rc.exe对大资源文件的兼容性更好,Delphi12支持直接使用它替代BRCC32。进入项目设置的「资源编译器」选项,将编译器路径改为系统自带的rc.exe(通常在Windows SDK目录下,如C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\rc.exe),参数可设置为/v /r。修改RC文件的图标定义
在图标定义中添加LOADONCALL属性,让资源延迟加载,降低编译时的内存占用:
MAINICON icon LOADONCALL "myicon.ico"
- 确认BRCC32版本
确保使用的是Delphi12自带的最新BRCC32版本,旧版本可能存在内存分配的bug。默认路径为C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\brcc32.exe,可尝试重新指定该路径编译。
内容的提问来源于stack exchange,提问作者delphirules
相关产品推荐
相关产品推荐

