Со ссылкой на видео с конференции Microsoft Build 2018:
https://medius.studios.ms/Embed/Video/BRK2425?sid=BRK2425
мы видим, что в новой версии IDL 3 отсутствует GUID.
Позволяет ли это иметь две разные версии одного и того же компонента, скажем, в двух разных папках на одном компьютере, и они работают одновременно?
Рассмотрим следующую структуру каталогов:
- C: \
- Appv1
- clientapp.exe
- mywinrtcomponent.dll
- mywinrtcomponent.winmd
- Appv2
- Different-clientapp.exe
- mywinrtcomponent.dll
- mywinrtcomponent.winmd
Будут ли оба exe использовать DLL рядом с ними, или есть механизм регистрации, подобный COM-объектам?
Я знаю, что это невозможно с компонентами COM, потому что, если они имеют одинаковый тип ID (guid), для него может быть зарегистрирована только одна DLL, и выигрывает последняя зарегистрированная DLL.
Так что, я думаю, я мог бы перефразировать мой вопрос на тему: «Как разрешаются зависимости для клиентского приложения, использующего компонент c ++ - winrt?» Если это просто старый COM-объектоподобный объект, то я понимаю, что невозможно иметь две разные версии, но если он загружает DLL с помощью обычного LoadDLL () и сначала ищет текущую папку, это будет возможно.