2017-02-01 7 views
5

マイクロソフトでは、(VS2015からVS2017へのスイッチを除いてはっきりとした例外を除いて)マイクロソフトでは、Visual C++ツールチェーンの各バージョン間でABIの変更点を変更しています。したがって、ライブラリのバイナリバージョンを配布したい場合は、サポートしたいVSの新しいバージョンごとに個別のバージョンを配布する必要があります。ビジュアルスタジオのCライブラリのABI互換性

今私の質問は以下のとおりです。

  • が、これは純粋なC-ライブラリについても同様ですか?
  • 答えはdllと静的ライブラリで異なりますか?
  • 今後のMSの公式ポリシーはありますか?refactoring and stabilization of the crtの光の中で特に)

これが関連している場合、私はWin10に固有の答えに満足するだろうが、(を含む)ので、私はまた、すべてのWindowsのバージョンに興味がありますWin7。私にとって興味のあるVS Studioのバージョンは、VS2013/15/17であり、これまでの予測が可能な限り、将来のリリースです。

+2

ピュア 'C'が安定している(過去に声明を発見した - 私は見つけることができれば、それは再び答えとして投稿します)。すべてのWin32APIメソッド(COMを含む)は 'C'としてエクスポートされることに注意してください。 'C' ABIを急に変更すると、すべての呼び出しがOSに壊れてしまいます。 –

+0

@RichardCritten:どうもありがとうございました。それは私の予想どおりでしたが、私は公式の文書を見つけることができませんでした。あなたがそれのための情報源を見つけることができればそれは素晴らしいだろうが、私はそれもなくあなたの答えを受け入れるだろう。 – MikeMB

答えて

0

純粋なCのABIは確かに安定しています。正しいMSVCRT *の依存関係を持っている限り、異なるVisualStudioバージョンで作成されたDLLを混在させることができます(静的なlibcでビルドする場合は当てはまりません)。あなたの周りのポインタを渡すことで、特別な世話をする必要がありしかし

http://siomsystems.com/mixing-visual-studio-versions/参照してもLibrary ABI compatibility between versions of Visual Studio

関連する問題