Как удалить зависимость от mfc80.dll и msvcr80.dll? - PullRequest
4 голосов
/ 18 декабря 2010

Мой код не использует MFC. Тем не менее, когда я создавал свою статическую библиотеку, сторона, которая пытается использовать ее, заявляет, что она испытывает трудности, потому что моя кодовая библиотека имеет следующие зависимости:

mfc80.dll и msvcr80.dll

Есть ли способ удалить их и восстановить? Я использую vs2008.

Ответы [ 2 ]

3 голосов
/ 18 декабря 2010

Статическая библиотека по умолчанию ссылается на динамическое время выполнения, поэтому ваш код зависит от msvcr80.dll. Программы Visual C ++ должны ссылаться на среду выполнения. Вы можете изменить статическую библиотеку, чтобы использовать статическую среду выполнения для удаления зависимости. Это делается в свойствах конфигурации | C / C ++ | Генерация кода | Настройка библиотеки времени выполнения. Однако выбранная библиотека времени выполнения должна соответствовать используемой в проекте, который связывает вашу статическую библиотеку.

Ваш код, вероятно, зависит от mfc80.dll, потому что у вас есть свойства конфигурации | Генерал | Использование MFC, установленного на один из параметров MFC.

На мой взгляд, Visual C ++ (и Windows в целом) был создан для динамических библиотек и динамических сред выполнения. Статические библиотеки кажутся более хакерскими, так как имеют удивительное количество ограничений, ловушек и своеобразного поведения. Лучше познакомиться с производством и использованием динамических библиотек - это лучше в долгосрочной перспективе.

0 голосов
/ 18 декабря 2010

mscvr80.dll является выпуском CRT. Вы можете удалить эту зависимость, установив статическую компиляцию компилятора. Скорее всего, вы пытаетесь загрузить MFC, потому что проект настроен на использование MFC, даже если вы его не используете. Вы можете удалить это в настройках проекта.

Хотя, надо спросить, почему VS2008 будет производить зависимости mfc80.dll и mscvr80.dll вместо mfc90.dll и mscvr90.dll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...