DLL能被几个进程同时调用吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DLL能被几个进程同时调用吗?相关的知识,希望对你有一定的参考价值。
比如有一个动态链接库C,A进程把它加载到内存,B进程能调用C吗?
C在内存中有几个拷贝,如果A、B进程同时调用C库,不会发生什么冲突吗?
请专家解答一下。
A,B分别调用C的时候,实际上, A,B在各自内存,分配了一块内存来装载C,
,A,B 内存是相互对立的,内存中各自中的C ,不是同一个C 。
你所想的同一个C ,是指磁盘文件 ,内存中并不相同的,所以你继续用D,E,F。。。。。来调用C都不影响。 参考技术B 可以,c的内容(代码、数据、数据表等),在内存只有一份拷贝。
每个装入c模块的进程只是有一份虚拟内存地址映射表。+c中的非共享段变量分配的空间。
绝对不冲突 参考技术C 一个dll在物理内存中只有一个拷贝,但会映射到每个程序各自的虚拟内存地址中,dll中的变量和函数返回值在虚拟内存地址中会有单独拷贝。
子数涵数·VB——DLL动态链接库
一、定义
DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。
二、制作
1.打开vb,新建工程,选择新建中的ActiveXDLL。
2.再把工程名和模块名分别改成DLLproject和DLLclass(改成什么可以自定义,不要用默认的就好了,因为用默认的话,会在引用时和现用的工程或模块重命,如果你没改现用工程或模块名的话)。
3.输入代码如下,这个代码很简单就不打注释了(就是声明一个函数,其返回值是100)。
4.生成工程,完成DLL的制作。
三、调用
1.新建一个工程,选择新建中的标准 EXE。
2.工程->引用->浏览,选中之前做好的DLL文件,单击确定。
3.绘制窗口,并编写代码如下。
4.完成,效果如下。
以上是关于DLL能被几个进程同时调用吗?的主要内容,如果未能解决你的问题,请参考以下文章