`
Aoogoo
  • 浏览: 20804 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

两个.exe含有相同的名称的dll, 到底加载几次?

阅读更多
在CodeGuru上看到一个有意思的提问:
两个Application: appOne.exe和appTwo.exe。如果两个Application要使用Windows系统提供的dll文件,只要加载一次就够了。但是如果它们各自都有一个“名字相同”的dll文件,比如commom.dll。应该加载几次呢?
我请教了一个Senior的同事,他说加载一次就够了。我追问,如果这两个dll功能不一样怎么办?他就不屑回答了。好吧,我只能做个试验。

1. 开发两个名字相同的dll,就叫commom.dll.dll就保留一个方法print出来。其中一个由appOne.exe调用,打印"This is app1.exe";另外一个由appTwo.exe调用,打印"This is app2.exe"。这里只贴出其中一个的代码:
common.h
#pragma once

#include <iostream>
#include <stdio.h>
#include <windows.h>
using namespace std;

extern "C" __declspec(dllexport) void print();

common.cpp
#include "common.h"

extern "C" __declspec(dllexport)
void print(){
    cout<<"This is app1.exe"<<endl;
}

2. 开发两个Application: appOne.exe, appTwo.exe。它们分别调用前面common.dll中的print方法。
为了保证它们在某个时段都运行在内存中,我们在调用完之后让其睡眠1分钟。
Main.cpp
#include "common.h"
#pragma comment(lib, "C:\\Users\\binwang.ASIAPACIFIC\\Documents\\Visual Studio 2008\\Projects\\common\\Debug\\common.lib") 

void main(){
    print();
    ::Sleep(1000*60);
}

3. 分别运行appOne.exe和appTwo.exe
看到没有,它们分别调用自己的dll。


  • 大小: 74.7 KB
0
0
分享到:
评论

相关推荐

    ExtAspNet_v2.3.2_dll

    -修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下Grid分页...

    NT Locale Emulator Advance (中文名稱: NT全域通)

    Q:我看到了两个可执行文件,应该怎样使用它们? A:直接运行ntleac.exe,或者为它建立一个快捷方式,并在命令行的末尾填上目标程序的全路径名。关于参数的详细说明请参考附录,在新的版本中您还可以使用名为...

    McAfee 8.0 简体中文

    创建/修改/删除文件(.exe)")对于阻止自身从一个共享资源复制 到另一个共享资源的病毒非常有效。但是,它们也可能会阻挡那些依 靠将文件推入工作站进行工作的管理系统。例如,在 ePolicy Orchestrator ...

    如何编写批处理文件批处理文件批处理文件

    (注意是两个等号) 如if "%1"=="a" format a: if {%1}=={} goto noparms if {%2}=={} goto noparms 2、if exist 文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如if exist ...

    c#学习笔记.txt

    (但是请注意:两个不同但结构上等效的委托类型的实例可能会比较为相等),准确地说,两个具有相同参数列表、签名和返回类型的不同的委托类型被认为是不同的委托类型。委托实例所封装的方法集合称为调用列表。 5, ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -增加TabStrip中Tab控件可关闭属性EnableClose(默认为false)以及两个方法GetShowReference和GetHideReference(feedback:anson)。 -修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。 -修正...

    IIS6.0 IIS,互联网信息服务

    in_这两个CAB格式的文件,将解压缩得到的“iis.dll”改名为“iis2.dll”,复制到“C:\Windows\system32\setup\”目录下;将 “iis. inf”改名为“iis2.inf”,复制到“C:\Windows\inf\”目录下。 步骤3 打开控制...

    多媒体教室

    如果您需要在两个组播不通的网段间使用多媒体网络教室,就必须在以 Windows NT 作为网关的机器上安装路由器软件,安装方法如下: 1. 使网关的两块网卡分别对应不同的网段,并将各网段的学生机设置网关为相应网段的...

    Windows 系统错误代码简单分析

     0149 试图连接或替换某个驱动器目录,该驱动器上的某个目录是上一次替换的目标目录。  0150 CONFIG.SYS 文件未指定系统跟踪信息,或禁止跟踪。  0151 DosMuxSemWait 的指定信号事件的数目不正确。  0152 ...

    C#编程经验技巧宝典

    98 &lt;br&gt;0153 如何自定义数字小数点左边分组位数 98 &lt;br&gt;0154 格式化输入数据为货币格式 99 &lt;br&gt;0155 如何计算两个整数的乘积 99 &lt;br&gt;0156 如何将二进制数转换为十进制数 100 &lt;br&gt;0157 如何...

Global site tag (gtag.js) - Google Analytics