Мой продукт - это библиотека С++, которая в Windows распространяется как dll. Это очень мало использует c-runtime (базовый iostream и его), поэтому я уверен, что все последние версии CRT будут в порядке.
Поскольку мой клиент должен создавать свое приложение с помощью моей dll, я не хочу навязывать ему какую-либо конкретную версию. Я бы хотел, чтобы моя dll привязывалась к любой версии библиотеки времени исполнения, используемой моим клиентским приложением (и я могу предположить, что он будет использовать динамическое связывание для своего CRT). В конце концов, разве это не динамическая связь? Возможно ли это?
EDIT: привязка dll к статическим исполняемым файлам не будет работать, потому что тогда статическая среда выполнения (из dll) и динамическая среда выполнения (из клиентского приложения) будут смешаны, что плохо.
EDIT: то, что я в основном задаю, - это как сказать загрузчику времени выполнения, чтобы связать мою dll с любым CRT, с которым связано приложение? Может, что-то с манифестом? В более общем плане, мой вопрос заключается в том, как создать красивую dll, которая будет использоваться клиентами, создающими их собственные приложения?
EDIT: благодаря советам в ответах я передал все ссылки на классы std на встроенные функции в своих заголовках и связал свою DLL со статическими библиотеками времени исполнения. Теперь он работает даже в приложениях, связанных с различными версиями CRT.