Как решить эту ошибку времени выполнения загрузчика DLL библиотеки времени выполнения MS (R6034) - PullRequest
2 голосов
/ 28 февраля 2010

Вот моя ситуация:

У меня есть проект C, связанный со многими библиотеками (я не написал это приложение), и он также поставляется с MSVCR71.dll и MSVCP71.dll. Даже без этих библиотек программа отлично работает на моей системе, на которой установлена ​​MS VS2005 (действительно, использует MSVCR80.dll и MSVCP80.dll).

Я связал это приложение с другими библиотеками, скомпилированными в моей системе. Теперь, после связи с этими библиотеками, приложение не запускается, потому что оно не может загрузить MSVCR80.dll и MSVCP80.dll ... очень странно, я говорю.

Загрузчик представляет мне ошибку R6034, которая должна решаться сборкой приложений с использованием файла манифеста.

Что не так с этим приложением?


Убедитесь, что проблема возникла в представленных библиотеках. Могу ли я скомпилировать эти библиотеки без манифеста или статически?

Все еще любопытно, почему приложение, не связывающее новые библиотеки, не находит библиотеки времени выполнения MS ...

1 Ответ

1 голос
/ 28 февраля 2010

MSVCP71.dll - это dll, используемая Visual Studio 2002. MSVCR80.dll предназначен для Visual Studio 2005. Итак, когда вы перекомпилировали это приложение с VS2005, вы получили новые зависимости DLL. Вы не можете решить это с помощью манифестов - вы должны перекомпилировать его в Visual Studio 2002 или просто поместить эти новые DLL в ту же папку, где находится ваше приложение.

Отредактировано: И да, вы можете просто связать свое приложение со статическими библиотеками CRT, чтобы избежать внешних зависимостей от этих DLL. Но это может оказаться невозможным, если одна из библиотек DLL или библиотек, с которыми вы связываетесь, использует динамический CRT - тогда вам следует перекомпилировать их также со статическим CRT.

...