将DLL打包到exe中并在运行后将其删除

时间:2019-02-21 15:39:12

标签: c++ windows winapi

我想将动态链接库(D L L)打包到可执行文件中,当我运行它时,我希望将其从硬盘驱动器中删除。

所以我需要帮助的第一个问题是:如何在项目中正确添加D L L?所以当我构建它时,D L L在可执行文件中?

第二个问题是:一旦将D L L适当地包含在项目中并且将项目构建到可执行文件中,我希望使用以下代码将D L L从可执行文件注入到另一个进程中:

pastebin.com/zsYVMqvs

现在进入第三个问题:一旦注入了D L L且必须将其提取到正确的位置?因此,我想在注入后立即删除提取的D L L,以使其不会留在此处。

1 个答案:

答案 0 :(得分:1)

将DLL放入.exe资源中是可能的。然后,您需要将DLL从资源中提取到本地硬盘驱动器上的dll文件中,并可能提取到temp目录中。然后使用它。在程序退出之前,删除预先创建的dll。

要提取内容,请使用FindResourceLoadResourceLockResourceSizeofResource

操作流程:

  1. 将DLL提取到TEMP目录(使用GetTempPath
  2. 运行程序以执行您想要使用DLL进行的任何操作
  3. 在退出程序之前,请确保不再使用DLL
  4. 删除在1下创建的dll。