[英]Delphi adding and using multiple resource files *.RES inside exe/dll
我对在delphi中使用* .RES文件有疑问。
例如,我有两个资源文件:1.RES和2.RES。 这两个RES文件都包含称为IMAGE1(jpg)的不同图像。
我使用以下命令将RES文件添加到Delphi应用程序中:
{$R '1.RES'}
{$R '2.RES'}
如何指定要使用的资源文件? 如果我只有一个RES文件,则在我要检索图像时使用以下命令:
var RS : TResourceStream;
jpg : TjpegImage;
RS := TResourceStream.Create(HInstance,'IMAGE1',RT_RCDATA);
jpg.LoadFromStream(RS);
现在,如果我有2个RES文件,我怎么知道它将加载什么? 我认为我需要控制HInstance,但我只是不了解如何操作。
给定模块中的资源名称必须唯一,就像函数中的变量必须具有唯一名称,目录中的文件必须具有唯一名称等相同。 因此,如果您将两个具有相同名称的资源放入同一模块,则一个资源将被丢弃,并且您将只能检索剩余的资源。
如果您不清楚模块是什么,我将尽力解释。 模块是DLL或可执行文件或Delphi包。 您的可执行文件是具有单个实例句柄的单个模块。 它链接到DLL,每个DLL是单独的不同模块。 可执行文件加载的所有软件包也是不同的模块。 您可以在其他模块中拥有与可执行文件中的资源同名的资源。
我认为我需要控制
HInstance
但我只是不了解如何操作。
希望我现在能理解,这无济于事。 值HInstance
标识模块,并且在您的代码中它表示与可执行文件关联的模块。
您的选择:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.