分享

DLL程序和调用其输出函数的程序的关系

 tianht 2015-04-28
1 DLL与进程,线程之间的关系
 DLL模块被映射到调用的他的进程的虚拟地址空间。DLL使用的内存从调用进程的虚拟地址空间分配,只能被该进程的线程所访问。DLL的句柄可以被调用进程使用,同时调用进程的句柄可以被DLL使用。DLL使用调用进程的栈。
2 关于共享数据段
 DLL定义的全局变量可以被调用进程访问;DLL可以访问调用进程的全局数据。 使用同一个DLL的每一个进程都有一个自己的DLL全局变量实例。如果一个进程的多个线程访问同一变量,则需要使用同步机制; 对一个DLL的变量,如果希望每个使用DLL的线程都有自己的不同值,则应该使用线程局部存储TLS, Thread Local Storage。
 
在程序里加入预编译指令,或在开发环境的项目设置里也可以达到设置数据段属性的目的,必须给这些变量赋初值,否则编译器会把没有赋初值得变量放在一个叫做未被初始化的数据段中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多