创造DLL:
1) 建立带有输出原型/结构/符号的头文件。
2) 建立实现输出函数/变量的C/C++源文件。
3) 编译器为每个C/C++源文件生成.obj模块。
4) 链接程序将生成DLL的.obj模块链接起来。
5) 如果至少输出一个函数/变量,那么链接程序也生成.lib 文件。
创造EXE:
6) 建立带有输入原型/结构/符号的头文件(视情况而定)。
7) 建立不引用输入函数/变量的C/C++源文件。
8) 编译器为每个C/C++源文件生成.obj源文件。
9) 链接程序将各个.obj模块链接起来,生成.exe文件。
注: DLL的lib文件是不需要的,因为并不直接引用输出符号。.exe 文件不包含输入表。
运行应用程序:
10) 加载程序为.exe 创建模块地址空进程的主线程开始执行;应用程序启动运行。
显式加载DLL:
11) 一个线程调用LoadLibrary (Ex)函数,将DLL加载到进程的地址空间这时线程可以调用GetProcAddress以便间接引用DLL的
输出符号。
DLL的创建和加载
最新推荐文章于 2021-08-18 09:42:27 发布
这篇博客详细介绍了DLL动态链接库和EXE可执行文件的创建过程。从编写头文件、实现函数到编译和链接,阐述了DLL的生成步骤,包括如何生成.lib文件。接着讲解了EXE的构建,强调了不直接引用DLL输入符号的特点。最后,讨论了应用程序运行时如何通过LoadLibrary和GetProcAddress来显式加载和使用DLL。
摘要由CSDN通过智能技术生成