我在VS2008的资源DLL项目主要包含PNG图像。 我每次导入一个新的形象,以资源文件,我得到一个错误RC2170:位图文件不是3.0格式,每个PNG,这是以前在资源文件。
事情是,所有这些iamges都遵守确定之前,我添加新的图像。 只有当我删除所有从资源文件中的图像,并再次将其导入(不变),这将汇编。
这种行为重演以增加每个新的PNG文件,并作为PNG文件数量的增加,它变得越来越烦人。
任何人都经历过什么similiar? 任何解决方案?
BTW:我实际上并不需要的资源编辑器来识别PNG文件图像,如果可以解决这个问题。
根据这个线索 ,你遇到这改变了资源编辑器中的错误:
IDI_DENTIFIER PNG "background.png"
至:
IDI_DENTIFIER BITMAP "background.png"
但要注意:这些PNG资源似乎并没有通过时,呼吁前Vista操作系统加载LoadImage()
使用这种资源类型可能会限制你的应用程序到Vista。
资源编辑器不直接支持PNG图像。 你必须将其添加为这样的二进制文件:
IDI_BACKGROUND RCDATA "background.png"
然后你可以使用GDI +从资源文件加载它们。 这在说明本文 (C ++)
我这个挣扎,却发现(在Visual Studio 2012至少),你可以轻松地添加PNG文件作为一种资源。 在资源视图,用鼠标右键单击该rc文件名,然后选择“添加资源”。 选择类型“位图”,然后单击“导入”,选择您想要的.png文件。新的一节应该添加到您的称为资源列表‘PNG’,它应该工作就像一个位图资源。
我看到这个失败的机会 - 如果是这样,保存PNG文件的一个扩展名.bmp副本(或将其保存为位图)然后将其添加为位图如上。 编辑资源文件,你会看到这样一行:
IDB_NEWFILE位图 “NewFile.bmp”
将其更改为
IDB_NEWFILE PNG “NewFile.png”
并保存文件。 下次你看一个“PNG”部分应该已创建项目的资源(甚至有评论标题!)
但是,据我所知,有透明的PNG文件要么不能正确显示或会导致在加载时崩溃(成一个按钮,例如)。