动态库程序编写,在Windows系统下的执行文件格式是PE格式,动态库需要一个DllMain函数作为初始化的人口,通常在导出函数的声明时需要有_declspec(dllexport)关键字。Linux下的gcc编译的执行文件默认是ELF格式,不需要初始化入口,亦不需要到函数做特别声明,编写比较方便。
对于windows dll,从下表我们可以看出三种DLL对DllMain入口函数的不同处理方式:
| DLL类型 | 入口函数 |
| 非 MFC DLL | 编程者提供DllMain函数(如果没有则编译器提供一个默认的DllMain) |
| MFC规则 DLL | CWinApp对象的InitInstance(DllMain函数被隐藏在其中了)和 ExitInstance |
| MFC扩展 DLL | MFC DLL向导生成DllMain 函数 |
参考:
http://www.jb51.net/article/3577.htm
本文深入探讨了Windows系统下DLL动态库的编写方法,包括PE格式、DllMain函数的作用及不同DLL类型的处理方式。对比Linux下GCC编译的ELF格式,展示了两者在初始化入口及函数声明上的区别。
3692

被折叠的 条评论
为什么被折叠?



