Тип библиотеки CRT

Я пытаюсь лучше понять параметры библиотеки CRT в Visual Studio 2013 (C++ -> Генерация кода -> Библиотека времени выполнения) и узнать, какой вариант выбрать (и когда изменить значение по умолчанию).

Из MSDN:

Библиотека многократного использования и все ее пользователи должны использовать одни и те же типы библиотек CRT и, следовательно, один и тот же переключатель компилятора.

Насколько я понимаю, если вы связываетесь со сторонней библиотекой, вы должны использовать ту же версию CRT, которая использовалась для создания библиотеки. Тот, кто собирал библиотеку, должен указать, какая опция CRT использовалась при сборке.

Есть ли способ определить, какая версия CRT использовалась, просто просмотрев файл .lib?

Что еще более важно, как бы вы решили, какой вариант использовать, если вы не связываетесь с какими-либо сторонними библиотеками? Когда бы вы подумали об изменении значения по умолчанию?


person user974967    schedule 05.04.2015    source источник
comment
you should use the same CRT version that was used to build the library Не обязательно — зависит от того, насколько хорошо разработан интерфейс этой библиотеки. Если он разработан таким образом, что ресурсы CRT никогда не распределяются между модулями, то не имеет значения, используют ли два модуля разные разновидности CRT. Например, библиотека никогда не выделяет память, которую вызывающая сторона должна освободить позже. Требуется определенная дисциплина для разработки библиотеки, которую может использовать любой вызывающий объект.   -  person Igor Tandetnik    schedule 06.04.2015