Поддержание статически связанного проекта MFC по сравнению с динамически связанным

#visual-studio #mfc #libraries

Вопрос:

У меня есть проект, предназначенный для устаревших систем (XP/2000 является самой ранней), поддерживаемый в Visual Studio 2019, в котором в настоящее время используются динамически связанные библиотеки.

При установке в других системах я должен установить распространяемый VC в этих системах, прежде чем программа начнет функционировать. Одним из решений этой проблемы, которое я нашел, было статическое связывание файлов, чтобы они содержались в исполняемом файле.

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

Во-первых, является ли это разумным ответом на этот вопрос?

Во-вторых, отличается ли поддержка статически связанного проекта от поддержки динамически связанного проекта, скажем, когда компилятор обновляется или Visual Studio выпускает новую версию/набор инструментов?

Комментарии:

1. Использует ли ваша программа какие-либо сторонние библиотеки и передает ли объекты CRT через границы модулей? В этом случае вы не сможете статически связываться с библиотеками поддержки C .

2. @IInspectable программа отлично работает без динамических ссылок, поэтому я бы сказал «нет». Недавно мы только что перенесли все внешние библиотеки, которые будут поддерживаться в рамках самого проекта.

3. Я задал вопрос, а не о том, работает ли программа.

4. Просто статически соединяйтесь. Ведение статически связанного проекта ничем не отличается от ведения динамически связанного проекта.

5. @Jabberwocky решает ли статическое связывание мои проблемы с переносимостью?