我制作了一个用C ++编写的程序,它使用许多文件,比如.dll或.png。 程序和文件位于同一目录中。 是否可以包含.exe应用程序中的文件? 所以我只需要.exe文件来运行程序。
答案 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(幸运的是只发生过一次或两次),但很高兴知道它是如何工作的。