在C ++中的.exe应用程序中包含文件(dll,txt等)

时间:2014-01-07 18:18:28

标签: c++ file dll include exe

我制作了一个用C ++编写的程序,它使用许多文件,比如.dll或.png。 程序和文件位于同一目录中。 是否可以包含.exe应用程序中的文件? 所以我只需要.exe文件来运行程序。

2 个答案:

答案 0 :(得分:5)

啊,是的。答案是在您运行的可执行文件的末尾写下所需的所有文件,包含在zip文件中。方法如下:Part 1(写入可执行文件)和 Part 2 [断开链接](从可执行文件中读取)。这很有趣;好问题。

请注意,无法为DLL文件执行此操作 - 它们必须与可执行文件位于同一目录中或安装在计算机上。

答案 1 :(得分:1)

有趣的问答。

我很久以前通过将.exe中的所有文件作为资源放置,然后使用以下过程将它们全部解压缩来完成:

HRSRC hResInfo = FindResource(NULL, MAKEINTRESOURCE(MY_RESOURCE_ID), MY_RESOURCE_TYPE);
HGLOBAL hRes = LoadResource(NULL, hResInfo)
LPVOID lpData = LockResource(hRes);
HANDLE hFile = CreateFile(....)
WriteFile(hFile, lpData, SizeOfResource(NULL, hResInfo), ...);
CloseHandle(hFile)

我的实现问题是我每次添加一个新文件时都必须重新编译.exe(幸运的是只发生过一次或两次),但很高兴知道它是如何工作的。