C++二进制兼容dll

请问使用C++编程,如何制作出不限制VC版本的动态库?
比如使用VS2019生成一个动态库,让其它VS版本(如VS2010、VS2005)都可以正常使用,使用形式为h头文件+lib+dll的形式,而不是使用LoadLibrary这种形式的调用dll?
windows平台

那就用lib,编译的时候一起编译进去。

不同VS版本C++ STL实现有区别而且二进制不兼容。如果你想让你自己的库能被其他VS编译器正常使用,那么你必须确保以下几点

  1. 库API函数原型不能含有任何STL类型
  2. 如果一个类成员里含有STL类型,必须提供专门接口来创建和销毁该类的对象,这样可以确保对象的创建和销毁时调用的是同一个版本的STL库。