目前与我DLL喷射工作,需要有一个单一的混合二进制,可以既充当可执行文件和一个DLL。我想可能的写的DllMain和WinMain函数,然后编译它作为一个可执行文件,但我不知道如果我这样做,会发生什么。我知道这是posssible使用类似thinstall或提取的dll到一个临时位置,然后从那里到一个DLL和EXE结合,但我不想惹任何东西。因此,基本上,是它可以定义的WinMain和DLL主,然后使用生成的可执行文件既,如果不是,这甚至可能?由于事先!

有帮助吗?

解决方案

没有

两者一个DLL和一个EXE具有PE(可移植可执行)报头。这头有一个字段IMAGE_FILE_HEADER::Characteristics。该字段的位14是0(对于EXE)或1(为一个DLL)。

其他提示

你为什么不把所有的公共代码到一个静态库(.LIB),并同时拥有DLL项目和EXE项目围绕静态库非常薄的包装?

您可以创建你的可执行文件的临时副本,打补丁的PE头和注入这个副本。另一种方法是将DLL作为二进制资源的可执行文件。在运行时,你可以这个二进制资源写入到一个临时文件,并使用此注射。

有可能从一个exe导出功能太。所以,你应该能够调用LoadLibrary( “foo.exe的”),然后调用GetProcAddress(hFoo, “酒吧”)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top