Visual C ++の倉曎

Visual C ++コンパむラのバヌゞョンを曎新する堎合たずえば、Visual Studioを2013から2015に切り替えるなど、以前に正垞にコンパむルおよび実行されたコヌドがコンパむル゚ラヌを匕き起こすずいう事実に遭遇する理由を芋぀けるための堎違いではありたせん/たたはランタむム゚ラヌ。
これらの問題は、C ++暙準に準拠するためのコンパむラぞの倚数の倉曎、関数シグネチャの倉曎、たたはメモリ内のオブゞェクトの堎所の倉曎によっお発生する可胜性がありたす。

実行時゚ラヌ最も芋぀けにくいこずがわかっおいるを回避するために、別のバヌゞョンのコンパむラが受け取ったバむナリファむルず静的リンクを䜜成しないこずをお勧めしたす。 たた、プログラムEXEたたはDLLを曎新するずきは、䜿甚するラむブラリも新しいバヌゞョンのコンパむラでコンパむルされおいるこずを確認しおください。
CRTCランタむムたたはSTL暙準テンプレヌトラむブラリの型を䜿甚する堎合は、異なるバヌゞョンのコンパむラでコンパむルされたバむナリDLLを含む間で型を転送しないでください。 この問題に぀いおは、 DLLの境界を越えおCRTオブゞェクトを枡す朜圚的な゚ラヌで詳しく説明したす 。
たた、将来的には、メモリ内のオブゞェクトの特定の堎所に䟝存するコヌドを䜜成しないこずをお勧めしたすCOMむンタヌフェむスたたはPODオブゞェクトでない限り。 そのようなコヌドがある堎合、コンパむラを曎新した埌、すべおが正垞に機胜するこずを確認する必芁がありたす。 詳现に぀いおは、 ABI境界での移怍性Modern C ++を参照しおください 。

次の蚘事では、Visual C ++コンパむラVisual Studio 2015 Previewに付属の倉曎に぀いお説明したす。 この蚘事では、「新しい動䜜」ず「今」ずいう蚀葉はこのバヌゞョンを正確に指し、「叀い動䜜」ず「以前の」はVisual Studio 2013および以前のバヌゞョンを指したす。

芁玄
-コンパむラの倉曎
-CランタむムラむブラリCRTの倉曎
-STLの倉曎
-MFCおよびATLの倉曎

コンパむラの倉曎




CランタむムラむブラリCRTの倉曎


䞀般的な倉曎



  <locale.h> 



  <math.h> 


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


All Articles