Я пытаюсь запустить клиентский виртуальный драйвер DLL (по сути это не драйвер, это код пользовательского режима). Эта dll загружается клиентом Citrix, который имеет манифесты для CRT, MFC, MFCLOC, все указывающие на Visual Studio 2005.
Я связал свою dll с точной версией среды выполнения C ++, найденной в файлах манифеста, установленных с клиентом Citrix.
Теперь моя DLL — это чистый win32-код без вызовов MFC, но я получаю сообщение об ошибке при создании контекста активации для MFC80.dll.
Не удалось создать контекст активации для «C: \ Program Files (x86) \ Citrix \ ICA Client \ MFC80.DLL». Ошибка в файле манифеста или политики «C: \ Program Files (x86) \ Citrix \ ICA Client \ Microsoft.VC80. MFCLOC.MANIFEST «в строке 5. Идентификатор компонента, найденный в манифесте, не соответствует идентификатору запрошенного компонента. Ссылка: Microsoft.VC80.MFCLOC, processorArchitecture = «x86», publicKeyToken = «1fc8b3b9a1e18e3b», type = «win32», version = «8.0.50608.0». Определение: Microsoft.VC80.MFCLOC, processorArchitecture = «x86», publicKeyToken = «1fc8b3b9a1e18e3b», type = «win32», version = «8.0.50727.762». Пожалуйста, используйте sxstrace.exe для подробной диагностики.
1) Установка среды выполнения, указанной в SxSTrace, решает проблему.