首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

多线程中动态链接库的运用

2012-10-14 
多线程中动态链接库的使用请问在多线程内是否可以重复加载动态链接库,对一个DLL的变量,如果希望每个使用DL

多线程中动态链接库的使用
请问在多线程内是否可以重复加载动态链接库,对一个DLL的变量,如果希望每个使用DLL的线程都有自己的值应该怎么做呢?

[解决办法]
dll是被加载到进程空间的,LoadLibrary返回的值是dll加载到的进程空间地址,所以都是一样的。这和多线程没有关系。 


一个dll在EXE中只会被加载一次,再次调用LoadLibrary仅仅增加模块句柄的引用计数而已,所以无需每个线程都调用LoadLibrary,可以直接使用句柄,或者用GetModuleHandle来获取已加载dll的句柄。

[解决办法]
动态连接库和Win是一样的,
各个线程都有各自的空间,
不会相互影响。
可以放心使用。

其实动态链接库不管怎么调用都不会冲突的。
不管是多线程,多进程,都不会出问题。

只要不是静态链接库。
[解决办法]
线程加载DLL后,该dll中用到的变量就被加载到线程本身的栈空间里面去了
所以多个线程同时使用dll不会冲突

热点排行