ABI compatibility of c-libraries visual studio

I understand that (with the exception of the exception from VS2015 to VS2017), Microsoft makes ABI a violation of the changes between each version of the Visual C ++ toolbar. Therefore, if I want to distribute the binary version of the library, I must distribute a separate version of this for each new version of VS that I want to support.

Now my questions are:

  • Is this also true for pure c libraries?
  • Is the answer different between dlls and static libraries?
  • Is there an official policy from MS regarding what they seek in the future?

(in particular, in light of refactoring and stabilization of crt )

If this is relevant, I would be pleased with the answer specific to Win10, but I am also interested in all versions of Windows, starting with (and including) Win7. The versions of VS Studio that are of interest to me are VS2013 / 15/17 and - as far as any forecasts can be made - future releases.

+5
source share
1 answer

ABI pure C is undoubtedly stable. You can mix DLLs executed with another version of VisualStudio if you also have the correct MSVCRT * dependencies (this does not apply if you create them with static libc, obviously).

However, you need to be especially careful when passing the pointer (see http://siomsystems.com/mixing-visual-studio-versions/ , as well as ABI Library compatibility between versions of Visual Studio )

0
source

Source: https://habr.com/ru/post/1263656/


All Articles