高分求解!(还可以加)Delphi(C++也可)编程问题。
我想做一个工具,需要很多的图片。请问:我能不能把所有的图片都保存到一个文件里,需要时还能添加、修改。(请问DLL、DAT、或RES行吗?好像遨游浏览器就是DLL)。〖^_...
我想做一个工具,需要很多的图片。请问:我能不能把所有的图片都保存到一个文件里,需要时还能 添加、修改。(请问DLL、DAT、或RES行吗?好像遨游浏览器就是DLL)。〖^_^|| 要求具体的、可行的回答嗯!〗
^_^|| 补充:您如果是不满意〖悬赏分〗而不回答的话,请在回复中注明期望的悬赏分数值,只要我还有,我就愿意给您!!!
也不是想做游戏呃,我是想了解下实现这个的方法,比如 浏览器的那个缩略图(似乎是储存在DLL文件里吧)、还有那个桌面管理软件 音速启动 的那些面板图标是怎样实现储存、修改的。 展开
^_^|| 补充:您如果是不满意〖悬赏分〗而不回答的话,请在回复中注明期望的悬赏分数值,只要我还有,我就愿意给您!!!
也不是想做游戏呃,我是想了解下实现这个的方法,比如 浏览器的那个缩略图(似乎是储存在DLL文件里吧)、还有那个桌面管理软件 音速启动 的那些面板图标是怎样实现储存、修改的。 展开
4个回答
展开全部
你说的问题我前些时间遇到过,游戏地图编辑器就可以;你了解STG文件存取吧,用这种文件可以达到你的需求;
以下是摘自网上
1、结构化存储技术是采用COM的技术架构,它的应用相对于常用的存储技术有一定差异。在Delphi语言中对流(Stream)的操作都是基于Tstream派生出来,象TFileStream、TMemoryStream等等都是Tstream的子类,而Delphi提供的具有相当好操作性的Treader和Twriter都是和Tstream类相对应操作的。为保持Delphi语言应用的一贯性和相互融通,Delphi语言特别提供了一个Tstream派生类TOLEStream,它专门用于针对IStream接口的相关操作。TOLEStream的构造函数为:Constructor Create(const Stream: IStream);虽然通过IStorage和IStream可以实现结构化存储技术进行文件的存取,但本人建议Delphi语言开发中最好通过TOLEStream实现结构化存储文件的存取工作。TOLEStream在Axctrls.pas中实现。
2、Delphi语言为方便开发人员,把结构化存储技术的相关函数和接口都进行封装,统一在Activex.pas单元中加以引用实现,所以要引用上述的IStorage、IStream以及相关的函数要把Activex做为引用单元。
3、关于IStorage和IStream相关函数的返回值都是Hresult,如果函数运行正常一般返回值为S_OK,为检验返回值是否正确可以调用OLECheck函数,如果IStorage和IStream相关函数返回的信息是错误的话,OLECheck将"引发" EoleSysError类的错误供开发人员调试和运行中检测。OLECheck函数封装在ComOBJ.pas单元中。
4、一般情况下,任何一个对象有创建就有释放相对应,但IStorage和IStream不需要人工释放,系统将会根据这两个接口的引用"计数器"是否为零自动释放,所以不要调用IStorage.release或IStream.release。
复杂的结构化存取(一)。
之所以说复杂, 就是区别与以前谈到的 结构化文件存取; 这种复杂的结构化文件也有叫做"复合文档".
有些文档不是结构化的, 譬如记事本文件; 结构化的档可以分为以下几类:
标准结构化文档、自定义结构化文档(譬如 bmp 文件)和复合文档.
这里要谈到的结构化储存(复合文档)是由 Windows 系统通过 COM 提供的, 它能完成像 Windows 目录结构一样复杂的文件结构的存取; 提示一下 Windows 的目录结构: 一个目录下可以包含子目录和文件, 然后层层嵌套...
有时我们要存储的文件也可能会层层分支, 具体的文件内容也可能五花八门, 譬如分支当中的某个文件是张图片、是一个字符串列表、是一个记录(或叫结构)等等, 存储这样的文件内容恐怕用数据库也是无能为力的.
这种复合文件支持多线程, 不同的进程中的不同线程可以同时访问一个复合文件的不同部分.
复合文件最典型的实例就是 OLE(譬如在 Word 中可以嵌入电子表格); 这也或许是这种复合文件的来由.
或许有了这个东西, 出品属于自己的文件格式就成了轻而易举的事情了.
存取和访问复合文档主要使用定义在 Activex 单元的三个 COM 接口:
IStorage (类似于 Windows 的目录, 也就是文件夹);
IStream (类似于目录中的文件, 不过在这里都是"流", 每个流至少要占用 512 字节);
IEnumStatStg (用于列举 IStorage 的层次结构)
"接口" 又是一个复杂的概念, 暂时把它认作是一组函数的集合吧.
以下是摘自网上
1、结构化存储技术是采用COM的技术架构,它的应用相对于常用的存储技术有一定差异。在Delphi语言中对流(Stream)的操作都是基于Tstream派生出来,象TFileStream、TMemoryStream等等都是Tstream的子类,而Delphi提供的具有相当好操作性的Treader和Twriter都是和Tstream类相对应操作的。为保持Delphi语言应用的一贯性和相互融通,Delphi语言特别提供了一个Tstream派生类TOLEStream,它专门用于针对IStream接口的相关操作。TOLEStream的构造函数为:Constructor Create(const Stream: IStream);虽然通过IStorage和IStream可以实现结构化存储技术进行文件的存取,但本人建议Delphi语言开发中最好通过TOLEStream实现结构化存储文件的存取工作。TOLEStream在Axctrls.pas中实现。
2、Delphi语言为方便开发人员,把结构化存储技术的相关函数和接口都进行封装,统一在Activex.pas单元中加以引用实现,所以要引用上述的IStorage、IStream以及相关的函数要把Activex做为引用单元。
3、关于IStorage和IStream相关函数的返回值都是Hresult,如果函数运行正常一般返回值为S_OK,为检验返回值是否正确可以调用OLECheck函数,如果IStorage和IStream相关函数返回的信息是错误的话,OLECheck将"引发" EoleSysError类的错误供开发人员调试和运行中检测。OLECheck函数封装在ComOBJ.pas单元中。
4、一般情况下,任何一个对象有创建就有释放相对应,但IStorage和IStream不需要人工释放,系统将会根据这两个接口的引用"计数器"是否为零自动释放,所以不要调用IStorage.release或IStream.release。
复杂的结构化存取(一)。
之所以说复杂, 就是区别与以前谈到的 结构化文件存取; 这种复杂的结构化文件也有叫做"复合文档".
有些文档不是结构化的, 譬如记事本文件; 结构化的档可以分为以下几类:
标准结构化文档、自定义结构化文档(譬如 bmp 文件)和复合文档.
这里要谈到的结构化储存(复合文档)是由 Windows 系统通过 COM 提供的, 它能完成像 Windows 目录结构一样复杂的文件结构的存取; 提示一下 Windows 的目录结构: 一个目录下可以包含子目录和文件, 然后层层嵌套...
有时我们要存储的文件也可能会层层分支, 具体的文件内容也可能五花八门, 譬如分支当中的某个文件是张图片、是一个字符串列表、是一个记录(或叫结构)等等, 存储这样的文件内容恐怕用数据库也是无能为力的.
这种复合文件支持多线程, 不同的进程中的不同线程可以同时访问一个复合文件的不同部分.
复合文件最典型的实例就是 OLE(譬如在 Word 中可以嵌入电子表格); 这也或许是这种复合文件的来由.
或许有了这个东西, 出品属于自己的文件格式就成了轻而易举的事情了.
存取和访问复合文档主要使用定义在 Activex 单元的三个 COM 接口:
IStorage (类似于 Windows 的目录, 也就是文件夹);
IStream (类似于目录中的文件, 不过在这里都是"流", 每个流至少要占用 512 字节);
IEnumStatStg (用于列举 IStorage 的层次结构)
"接口" 又是一个复杂的概念, 暂时把它认作是一组函数的集合吧.
展开全部
Em
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把所有图片的数据都保存在一个文件中,然后写一个程序进行管理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
想做游戏吧
看看暴雪的MPQ文件存储格式吧 不只是图像 包括声音 字符串一类游戏的常用资源都可以用这种格式来打包 开源库有 libmpq 从这里check一下就出来了
svn co https://libmpq.org/svn/libmpq/trunk libmpq
于此相同的还有 Gameloft的PAK格式 Westwood的Mix格式等
哦 缩略图没有存放在dll里面 只是存放在thumbs.db的图像数据库里面了
可以放在DLL中 那叫纯资源DLL
看看暴雪的MPQ文件存储格式吧 不只是图像 包括声音 字符串一类游戏的常用资源都可以用这种格式来打包 开源库有 libmpq 从这里check一下就出来了
svn co https://libmpq.org/svn/libmpq/trunk libmpq
于此相同的还有 Gameloft的PAK格式 Westwood的Mix格式等
哦 缩略图没有存放在dll里面 只是存放在thumbs.db的图像数据库里面了
可以放在DLL中 那叫纯资源DLL
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询