Это зависит от вашего API. Если вы создаете свои исполняемые файлы с использованием не-DLL-версии библиотек времени выполнения, то каждая DLL и EXE получает свою собственную копию статических данных библиотек времени выполнения. Наиболее очевидный эффект заключается в том, что вы не можете выделить что-то динамически из одного модуля (DLL или EXE) и ожидать безопасного освобождения этого в другом модуле. Будут и другие, менее распространенные проблемы, например, если вы srand
в одном модуле, не ожидайте, что это повлияет на вызовы rand
во всем приложении.
Обычно наиболее безопасно в исполняемом файле, который связывается с другими пользовательскими DLL, чтобы скомпилировать их все с версией DLL библиотек времени выполнения. Возможно, вы захотите использовать статические версии библиотек времени выполнения, если вы строили статически связанный исполняемый файл с использованием статических библиотек, возможно, для простоты упаковки и распространения, но я не вижу большого преимущества в гибридной конфигурации с учетом потенциальных проблем. 1005 *