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