Запуск 32-битного приложения в Windows 7 с зависимыми DLL - PullRequest
2 голосов
/ 17 ноября 2011

У меня запущено простое 32-битное приложение.Он использует Qt и другие библиотеки.Разобравшись с манифестами, у меня есть папка с приложением, манифестами и зависимыми DLL.Запуск этого на целевой машине под Windows 7 64 бит прямо с флешки работает.Копирование этого в папку на диске D:\, и оно работает.

Копирование этого в папку в Program files (x86), и я получаю:

R6034.Приложение попыталось загрузить библиотеку времени выполнения C неправильно.

У меня есть манифест для моего исполняемого файла.У меня также есть манифест для msvc*.dll в папке, как предлагается в другом месте на этом форуме.Итак, почему это работает везде, кроме того места, где это должно быть?

1 Ответ

1 голос
/ 17 ноября 2011

Dependency Walker поможет здесь - запустите его на своем .exe, когда он находится в рабочем состоянии, а когда нет, и сравните расположение библиотеки времени выполнения C, которую пытается использовать ваше приложение (я верю в этодолжно быть msvcrt.dll , если вы в выпуске, msvcrtd.dll , если вы этого не сделаете), и вы, надеюсь, сможете найти разницу.

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

...