В настоящее время мы делаем обновления для нашего приложения. Win7-> Win10, VS2012-> VS2017. Решения имеют довольно высокую сложность, но все прошло хорошо, за исключением одного проекта (процесса).

Процесс умирает и в журнале событий я могу найти это:

Faulting application name: MyProcess.exe, version: 1.0.0.0, time stamp: 0x5c418d86
Faulting module name: ucrtbase.dll, version: 10.0.10240.16384, time stamp: 0x559f3aa5
Exception code: 0xc0000409
Fault offset: 0x0007d84b
Faulting process id: 0xcdc
Faulting application start time: 0x01d4b19831ce98cd
Faulting application path: C:\PathToMyProcess\MyProcess.exe
Faulting module path: C:\Windows\SYSTEM32\ucrtbase.dll
Report Id: 3071cc19-1a57-4828-9721-275a2d3cf164
Faulting package full name: 
Faulting package-relative application ID: 

Я пришел к выводу, что он работает на компьютере с установленной Visual Studio 2017, но не на одном без. Я установил с разработкой рабочего стола .NET, Разработка рабочего стола с C++. Пришлось включать отдельные компоненты: Visual c++ MFC для x86 и x64 и Windows 10 SDK 10.0.17134. Смотри картинку.

установленные вещи

Я установил распространяемые версии различных версий и все, что я мог получить, и это все еще не работает. Что мне не хватает? Что не включено по умолчанию в Windows и распространяемый Microsoft Visual C++ для Visual Studio 2017?

2 ответа2

0

Я столкнулся с этой проблемой в двух случаях, когда мне удалось решить один из них и получить "проблемную область" другого. Эта ошибка ucrtbase.dll вещь просто общая ошибка. Так что же пошло не так для меня?

Первый случай; Приложение -> cpp.dll -> интерфейс cpp со статической связью с -> C # .dll -> Обнаружена ошибка. Ошибка была обнаружена, перехвачена и выброшена вверх в C # и даже после этого попала в C-interop для C++. Это не работает, и все просто взорвалось.

Второй случай: не решен в данный момент, но неожиданно потерпел неудачу при попытке использовать _COM_SMARTPTR_TYPEDEF, который ранее работал в Win7, но не в Win10.

Изменить: Второй случай решен; был глубоко внутри com-конструкторов, которые потерпели неудачу из-за плохого прокси / заглушки com-интерфейса при взаимодействии с другими процессами. В основном плохое общение.

0

Я установил распространяемые версии различных версий и все, что я мог получить, и это все еще не работает.

ucrtbase.dll имеет ничего общего с любой версией распространяемого Visual C++. Неисправный файл взят из Windows 10 SDK (26624).

Я пришел к выводу, что он работает на компьютере с установленной Visual Studio 2017, но не на одном без

Visual Studio 2017 в зависимости от компонентов, выбранных для установки, установит правильную версию Windows SDK.

Что не включено по умолчанию в Windows и распространяемый Microsoft Visual C++ для Visual Studio 2017?

Visual Studio 2017 установит Windows SDK, если вы выберете компоненты, которые в этом нуждаются. Если вы не выберете установку каких-либо компонентов, для которых требуется Windows SDK, Windows SDK не будет установлен Visual Studio 2017.

Что мне не хватает?

Я бы начал, если вы являетесь автором программы, обновив свое решение, чтобы оно указывало на правильную версию ucrtbase.dll , а затем установил Universal C Runtime в системе. Если вы не автор, то я бы установил Windows 10 SDK (26624) , чтобы устранить неисправный модуль.

Когда вы устанавливаете правильную версию SDK, убедитесь, что вы установили Universal C Runtime , так как именно это устанавливает ucrtbase.dll

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .