Мы публикуем настольное приложение Windows (построенное с помощью Visual C++ 2013 с набором инструментов платформы v120_xp), которое отлично работало в Windows 10, но мы начали получать отчеты от пользователей, установивших обновление «Threshold 2», о том, что наше приложение теперь не работает. запуск, показывая следующее сообщение об ошибке:
Не удалось правильно запустить приложение (0xc0000142). Нажмите OK, чтобы закрыть приложение.
Код ошибки — STATUS_DLL_INIT_FAILED, поэтому мы, предположительно, ищем DLL, которая не инициализируется.
Мы предприняли несколько попыток устранить эту проблему, наблюдая за запуском приложения в отладчике и используя Process Monitor, чтобы увидеть, какие библиотеки DLL загружаются. Последней загруженной DLL (на машине с установленным Threshold 2) является «davhlpr.dll». Когда мы наблюдаем, как наше приложение запускается в Windows 10 без Threshold 2, оно запускается без явной загрузки этой DLL. Это говорит о том, что проблема может быть связана с davhlpr.dll, но наш код явно не зависит от этой DLL, и я понятия не имею, что это такое.
Кто-нибудь еще видел что-нибудь подобное?
У кого-нибудь есть идеи, как мы можем решить эту проблему? После того, как я попробовал отладчик и Process Monitor, у меня закончились идеи.