第21章 动态链接库

来源:互联网 发布:mac 10.10.5 升级包 编辑:程序博客网 时间:2024/05/16 15:21

一、动态链接库基本知识

1、动态链接库模块可以有任何扩展名(.exe,.fon),但其标准扩展名是,DLL。只有扩展名为.DLL的动态链接库才能被windows操作系统自动加载,否则明确的用LoadLibrary,LoadLibraryEx

三、LIB库

扩展名为LIB的文件分对象库和导入库

1、对象库的中的代码被连接到.exe或者其他文件中。

2、导入库不包含任何代码,只是告诉目标文件,某个函数、类的地址;

四、关于动态链接库的其他话题

1、如果必须在动态库内创建窗口类和窗口,最好使用调用程序的实例句柄。

五、没有导入函数的动态链接库

1、LoadLibrary 加载动态链接库,如果没有卸载的情况下,再次调用LoadLibrary,该动态链接库的引用计数会+1,FreeLibrary,引用计数减1,当引用计数降到0,Windows会把这个动态链接库从内存中卸载。


六、多个实例共享数据

#pragma data_seg("share")int iTotal = 0;WCHAR szStrings[1024][1024] = {'\0'};#pragma data_seg();
设置连接器 /SECTION:share,RWS 或者在代码中
#pragma comment(linker, "/SECTION:share,RW")

7、使用EXPORT 关键字导出函数或者类或者变量

0 0