Nano Hash - криптовалюты, майнинг, программирование

Сбой запуска приложения с кодом ошибки 0xc000007b после обновления 32-разрядного проекта до 64-разрядного

Я публикую этот вопрос здесь, потому что у меня было много проблем, когда я пытался найти на него ответ - в частности, все ответы на StackOverflow не решали проблему.

Недавно я обновил свой 32-разрядный проект Visual Studio 2010, чтобы он также компилировался для x64. Компиляция работает без проблем, но при попытке запустить приложение вылетает с кодом ошибки 0xc000007b. Обычно это происходит, когда вы забыли обновить включенные библиотеки DLL с 32-разрядной до 64-разрядной и, следовательно, попытались загрузить 32-разрядный код в свое 64-разрядное приложение, но в данном конкретном случае я включаю только те библиотеки DLL, которые поставляются с Windows, поэтому WOW в любом случае должен выбрать правильную версию DLL... теоретически.

ProcMon указывает, что все библиотеки DLL загружаются из C:\Windows\System32, что является правильным местом для 64-разрядных подключаемых модулей. Использование Dependency Walker, как предлагается в этой ветке StackOverflow, не имеет смысла. также помогите, так как он считает, что все библиотеки DLL, на которые ссылаются, являются 32-разрядными, вероятно, потому, что само DW является 32-разрядным приложением, поэтому, когда он запрашивает, например, user32.dll, Windows выберет версию, находящуюся в папке SysWOW64.


Ответы:


1

При использовании манифеста для включения визуальных стилей в общих элементах управления не забудьте обновить файл манифеста для вашего проекта x64. Эту проблему легко контролировать, так как вы, вероятно, создаете свой файл манифеста только один раз и больше никогда его не трогаете.

Ваш файл манифеста может содержать такой раздел:

<assemblyIdentity
     type="win32"
     name="Microsoft.Windows.Common-Controls"
     version="6.0.0.0"
     publicKeyToken="6595b64144ccf1df"
     language="*"
     processorArchitecture="x86"/>

Это заставляет Windows искать 32-разрядную версию общих элементов управления. Чтобы устранить эту проблему, вам придется заменить все вхождения "x86" в файле манифеста на "amd64" или просто "*" (чтобы это работало на всех платформах). Не забудьте создать отдельный манифест для 64-битной версии вашего проекта, если вы не используете версию "*".

11.08.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..