Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我在 EXE 中有一个资源并且我想提取它,这很简单。就像是:
stream := TResourceStream.Create(HInstance, ResourceName, RT_RCDATA);
这是因为全局变量 HInstance 是 EXE 的句柄。BPL 中的代码是否有任何类似的方法来获取它所属的包的句柄,以便我可以从中提取资源?
HInstance 实际上在 SysInit 单元中,对于每个 PE(包、exe、dll)都是唯一的。系统,如果使用 rtl 包,大部分编译器 RTL 和辅助函数在包之间共享。
因此,您上面显示的代码应该可以在包中正常工作。MainInstance 可能是您认为的加载 exe(在某些情况下甚至是 DLL)的句柄。