是否可以在win32 c ++可执行文件中包含图像(jpegs)作为资源?如果是这样的话?
答案 0 :(得分:4)
如果只是Windows,则使用自定义资源。如果你想要跨平台的东西,那就做我为最近的项目做的事情 - 创建一个应用程序,将JPEG编码为头文件中的char*
缓冲区,然后在主项目中包含这些标题。您还需要存储缓冲区的大小,因为它肯定会包含NUL。
例如,我有一个应用程序,您可以传递一大堆要编码的文件,并为每个文件提供一个类似于此的头文件:
#ifndef RESOURCE_SOMEFILE_JPG_HPP
#define RESOURCE_SOMEFILE_JPG_HPP
namespace resource {
const char* SOMEFILE_JPG[] =
{
...raw jpeg data...
};
const int SOMEFILE_JPG_LEN = 1234;
} // resource
#endif // RESOURCE_SOMEFILE_JPG_HPP
该应用必须以\x
格式转义特殊的不可打印字符,但它非常简单。该应用程序使用boost::program_options
库,因此要编码的文件列表可以存储在配置文件中。每个文件都有自己的标题,类似于上面的标题。
但是,请注意 - 这仅适用于小文件,因为某些编译器对静态字符缓冲区的最大大小有限制。我确信还有其他方法可以做到这一点,但这个方案适合我(一个以这种方式存储HTML,CSS,JavaScript和图像文件的C ++ Web应用程序)。
答案 1 :(得分:0)
也许this正是您要找的?
答案 2 :(得分:0)
以下是有关资源文件的MSDN文档。
http://msdn.microsoft.com/en-us/library/aa380599(VS.85).aspx