C++ windows如何处理加载两个不同版本的DLL?

C++ windows如何处理加载两个不同版本的DLL?,c++,windows,dll,C++,Windows,Dll,问题 我正在编写一个使用特定DLL版本的软件。我在执行目录中找到了特定的DLL,因此程序使用该DLL。但是现在我不知道如果加载了特定的DLL并且启动了另一个需要更新版本的程序,会发生什么。有人知道会发生什么吗?另一个程序崩溃了还是我的程序崩溃了 其他 这个问题适用于操作系统:Windows 10和Windows 7。 工作站正在运行windows更新,因此DLL将是最新的。 在C++中编写代码。 < P>可以在不同的进程中加载不同的DLL。 不同进程的地址空间是独立的,不会相互干扰 如果DLL使

问题

我正在编写一个使用特定DLL版本的软件。我在执行目录中找到了特定的DLL,因此程序使用该DLL。但是现在我不知道如果加载了特定的DLL并且启动了另一个需要更新版本的程序,会发生什么。有人知道会发生什么吗?另一个程序崩溃了还是我的程序崩溃了

其他

这个问题适用于操作系统:Windows 10和Windows 7。 工作站正在运行windows更新,因此DLL将是最新的。
在C++中编写代码。

< P>可以在不同的进程中加载不同的DLL。 不同进程的地址空间是独立的,不会相互干扰

如果DLL使用全局命名对象(例如磁盘上的文件、互斥、共享内存),则特定DLL的互操作性可能会相互干扰

如果他们有一个数据库的单一路径(版本12),如果旧的DLL不理解版本12,它可能会崩溃

可以使用
LoadLibrary
将同一DLL的两个不同版本加载到同一进程中。这将需要通过GetProcAddress或其他辅助方法调用一个DLL,但这两个DLL可以存在并在同一进程中工作


在访问命名对象时,同一进程中的两个DLL也会相互干扰。

为什么其中一个程序会崩溃?你的程序将加载你的DLL;另一个程序将加载其DLL,除非出现严重错误。但是Windows Update与此有什么关系呢?Windows Update可以更新dll,但是Windows可以从同一个dll加载2吗?只有不同的版本?或者,当两个程序同时运行时,windows是否使用上次加载的版本windows Update仅更新windows和其他Microsoft应用程序。它不会改变你的申请。加载DLL时,您只是将其加载到进程中,它不会影响任何其他进程。