关于动态链接库的使用

xuxian02092213 2008-11-05 08:26:44
看了Windows核心编程,看了动态链接库编程,也看懂了,书上的例子也调试通顺了,但是对也动态链接库的使用,绝对不仅仅是书

上说的那么少。对于显示连接来说,当DllMain接收到DLL_PROEESS_ATTACH消息时,动态链接库会处理DLL 的初始化,这个仅仅

只有一次,这个很好理解,在此时讲所有的全局的实例都给初始化,分配内存等等。。。。。书上介绍的是:"当进程创建一个线程

的时候,系统会检查当前映射到该进程的地址空间中的所有DLL文件映像并用DLL_THREAD_ATTACH来调用DLL的DllMain函数."

这个就是说当DLL文件被加载后,进程创建一个线程,这个时候,系统会给所有的DLL文件发送一个DLL_THREAD_ATTACH消息,来执

行与线程先关的初始化。。。。。。

小弟在此处有点不明白,就是在DLL文件加载后所有DLL会接收到DLL_THREAD_ATTACH消息,执行与线程相关的初始化,我想的是一

个DLL文件被映射倒一个进程中,那么在没有卸载这个DLL文件,进程中的线程都可以使用这个DLL,那么在处理

DLL_THREAD_ATTACH消息时,会做个什么工作呢,能否有人给我讲讲清楚点呢??谢谢
...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckt 2008-11-10
  • 打赏
  • 举报
回复
Windows核心编程 有提到 线程局部存储吧?

另外,没咋见过处理这个.
cyj626 2008-11-10
  • 打赏
  • 举报
回复
down
ba
shailen126 2008-11-10
  • 打赏
  • 举报
回复
oh,I know..DOWN
  • 打赏
  • 举报
回复
please say 'down'
anuosix 2008-11-09
  • 打赏
  • 举报
回复
up
太乙 2008-11-09
  • 打赏
  • 举报
回复
就是,ls的人不厚道!!

Don't say 'Up' ,Please!

我接分~~~

哈哈~~~~~
xuxian02092213 2008-11-09
  • 打赏
  • 举报
回复


Don't say 'Up' ,Please!
xhs_lh04 2008-11-05
  • 打赏
  • 举报
回复
UP
星羽 2008-11-05
  • 打赏
  • 举报
回复
up
freshairfly 2008-11-05
  • 打赏
  • 举报
回复
我见过的工程都没有处理这些消息,包括DLL_PROCESS_ATTACH都很少处理。为了跨平台我写DLL时根本就不加DllMain函数。
但我想一些和线程相关的一些初始化,比如,你的DLL是线程安全的,可能会采用一些机制来保存各个线程的信息
R9R9R9 2008-11-05
  • 打赏
  • 举报
回复
我觉的一旦一个DLL被映射到一个进程的地址空间,这个进程中的所有线程都可以直接调用Dll中的函数之类的东西,在DLL_THREAD_ATTACH中应该不需做什么特别的处理。
Longinc 2008-11-05
  • 打赏
  • 举报
回复
帮顶

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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