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

lvjing1210 2009-07-20 01:57:49
请问在多线程内是否可以重复加载动态链接库,对一个DLL的变量,如果希望每个使用DLL的线程都有自己的值应该怎么做呢?
...全文
249 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
joezjm 2012-09-24
  • 打赏
  • 举报
回复
用什么办法解决了?
lvjing1210 2009-08-19
  • 打赏
  • 举报
回复
已经用其他方法解决了这个问题了
lvjing1210 2009-08-19
  • 打赏
  • 举报
回复
可是线程是共享资源的呀,已经验证过是会有问题的
ShowMan 2009-07-31
  • 打赏
  • 举报
回复
不会的
daniel_yao 2009-07-31
  • 打赏
  • 举报
回复
dll中的全局变量在多线程中不会冲突?
jiangfeng999 2009-07-31
  • 打赏
  • 举报
回复
线程加载DLL后,该dll中用到的变量就被加载到线程本身的栈空间里面去了
所以多个线程同时使用dll不会冲突
yhf365 2009-07-20
  • 打赏
  • 举报
回复
动态连接库和Win是一样的,
各个线程都有各自的空间,
不会相互影响。
可以放心使用。

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

只要不是静态链接库。
bainan 2009-07-20
  • 打赏
  • 举报
回复
dll是被加载到进程空间的,LoadLibrary返回的值是dll加载到的进程空间地址,所以都是一样的。这和多线程没有关系。


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

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧