动态库程序编写,在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/article/3577.htm
更多推荐
Windows和Linux dll区别
发布评论