【发布时间】:2014-01-25 13:32:22
【问题描述】:
我制作了一个用 C++ 编写的程序,它使用许多文件,例如 .dll 或 .png。 程序和文件位于同一目录中。 是否可以在 .exe 应用程序中包含文件? 这样我只需要 .exe 文件即可运行程序。
【问题讨论】:
-
根据您使用的框架,您可以将 png 文件添加到可执行文件中。无需在某处提取就无法添加的 dll。
我制作了一个用 C++ 编写的程序,它使用许多文件,例如 .dll 或 .png。 程序和文件位于同一目录中。 是否可以在 .exe 应用程序中包含文件? 这样我只需要 .exe 文件即可运行程序。
【问题讨论】:
有趣的问题和答案。
我很久以前就这样做了,将 .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(幸运的是,这种情况只发生了一两次),但很高兴知道它在后台是如何工作的。
【讨论】: