是否可以创建操作系统可以加载并作为可执行文件运行但也可以动态链接的单个二进制文件?
这对于客户端和服务器可以驻留在同一可执行文件(甚至可能共享代码)的应用程序之间的资源共享非常有用。
我对 Linux 和 Windows 都感兴趣
是否可以创建操作系统可以加载并作为可执行文件运行但也可以动态链接的单个二进制文件?
这对于客户端和服务器可以驻留在同一可执行文件(甚至可能共享代码)的应用程序之间的资源共享非常有用。
我对 Linux 和 Windows 都感兴趣
至少在 Windows 上这是不支持的。您加载模块,LoadLibrary
并且不能将可执行文件传递给LoadLibrary
该模块并随后从该模块执行代码。文档说:
LoadLibrary 也可用于加载其他可执行模块。例如,该函数可以指定一个 .exe 文件来获取可以在 FindResource 或 LoadResource 中使用的句柄。但是,不要使用 LoadLibrary 运行 .exe 文件。而是使用 CreateProcess 函数。
实现所需的最简单方法如下:
main
函数,或者WinMain
如果这是一个 GUI 子系统应用程序。您可以使用 exe 导出库中的符号链接并将另一个项目(例如 DLL 项目)链接到该库。然后,您可以从 exe 本身动态加载 DLL,一切正常。我不确定是否可以使用它,否则就像使用LoadLibrary
拉兹万。
看这里,它至少可以在 windows 下回答你的问题。 http://sandsprite.com/CodeStuff/Using_an_exe_as_a_dll.html