我在 VC++ 2008 (express) 中工作,我想用 C 写一些东西来创建一个“空”的 exe,我以后可以调用LoadLibrary
它并使用BeginUpdateResource
,UpdateResource
来EndUpdateResource
修改内容。
仅仅写一个 0 字节的文件不允许我用 LoadLibrary 打开它,因为它不是资源。
您可以编译一个空的 .exe 文件,例如,
int main() { return 0; }
并将其用作模板。(或者一个空的.dll,无论如何)
.EXE 格式是一种复杂的文件格式。它有一堆必需的标头来描述其基本执行属性(16 位、32 位或 64 位,以及 DOS/Win16/Win32/Win64 模式以及 EXE 与 DLL)。之后,它必须有一个正确的地址重定位表。它不是微不足道的,您已经对 .EXE 文件格式进行了一些研究以正确执行此操作。
“创建” exe 是编译器非常擅长的事情。那么为什么不让编译器创建您想要的可执行文件,并使用该文件(或其内容的二进制表示)进行复制呢?