0

参考 Microsoft Build 2018 大会的视频: https ://medius.studios.ms/Embed/Video/BRK2425?sid=BRK2425

我们看到新的 IDL 版本 3 中没有 GUID。这是否可以让同一组件有 2 个不同版本,比如说在同一台计算机上的两个不同文件夹中,并让它们同时工作?考虑以下目录结构:

  • C:\
    • 应用v1
      • 客户端应用程序
      • mywinrtcomponent.dll
      • mywinrtcomponent.winmd
    • 应用v2
      • 不同的clientapp.exe
      • mywinrtcomponent.dll
      • mywinrtcomponent.winmd

两个 exe 都会使用它们旁边的 DLL,还是有像 COM 对象这样的注册机制?

我知道 COM 组件不可能,因为如果它们具有相同的类型 ID (guid),则只能为其注册一个 DLL,最后注册的 DLL 获胜。

所以我想我可以将我的问题重新表述为“如何解决使用 c++-winrt 组件的客户端应用程序的依赖关系?” 如果它只是普通的类似 COM 对象,那么我知道不可能有两个不同的版本,但如果它使用常规 LoadDLL() 加载 DLL 并首先搜索当前文件夹,这是可能的。

4

0 回答 0