4

如果我在 EXE 中有一个资源并且我想提取它,这很简单。就像是:

stream := TResourceStream.Create(HInstance, ResourceName, RT_RCDATA);

这是因为全局变量 HInstance 是 EXE 的句柄。BPL 中的代码是否有任何类似的方法来获取它所属的包的句柄,以便我可以从中提取资源?

4

1 回答 1

7

HInstance 实际上在 SysInit 单元中,对于每个 PE(包、exe、dll)都是唯一的。系统,如果使用 rtl 包,大部分编译器 RTL 和辅助函数在包之间共享。

因此,您上面显示的代码应该可以在包中正常工作。MainInstance 可能是您认为的加载 exe(在某些情况下甚至是 DLL)的句柄。

于 2011-03-21T05:35:10.370 回答