Rozumiem, że (z godnym uwagi wyjątkiem od VS2015 do VS2017) Microsoft sprawia, że ABI łamie zmiany między każdą wersją biblioteki narzędziowej Visual C++. Więc jeśli chcę rozpowszechniać binarną wersję biblioteki, muszę rozpowszechniać osobną wersję tej dla każdej nowej wersji VS, którą chcę obsłużyć.ABI-Kompatybilność bibliotek Visual Studio c
Teraz moje pytania to:
- Czy to jest również prawdziwe dla czystym C-bibliotek?
- Czy odpowiedź różni się między bibliotekami dll i bibliotekami statycznymi?
- Czy istnieje oficjalna polityka ze strony PC na temat tego, czego chcą w przyszłości?
(w szczególności w świetle refactoring and stabilization of the crt)
Jeśli jest to istotne, że będę zadowolony z odpowiedzi właściwych dla Win10, ale jestem również zainteresowany wszystkich wersjach Windows od (włącznie) Win7. Wersje VS Studio, które mnie interesują to VS2013/15/17 i - o ile można przewidzieć - przyszłe wydania.
Czysta 'C' jest stabilny (odkryli oświadczenie w przeszłości - jeśli znajdę to znowu będzie księguje jako odpowiedź). Zauważ, że wszystkie metody Win32API (w tym COM) są eksportowane jako 'C'. Dokonanie przełomowej zmiany w 'C' ABI spowodowałoby przerwanie wszystkich połączeń w systemie operacyjnym. –
@RichardCritten: Dziękuję bardzo. Tego właśnie oczekiwałem, ale nie mogłem znaleźć oficjalnej dokumentacji. Byłoby wspaniale, gdybyś mógł znaleźć jego źródło, ale bez niego też bym zaakceptował twoją odpowiedź. – MikeMB