Microsoft C++ ABI

E284627

The Microsoft C++ ABI is the application binary interface that defines how C++ code is represented, called, and linked on Microsoft platforms, ensuring binary compatibility between compilers and libraries in the Windows ecosystem.

All labels observed (8)

How this entity was disambiguated

Statements (50)

Predicate Object
instanceOf C++ ABI
application binary interface
software engineering standard
defines RTTI (run-time type information) representation for C++ on Microsoft platforms
binary interface for C++ class inheritance on Microsoft platforms
binary interface for inline functions on Microsoft platforms
binary interface for multiple inheritance in C++ on Microsoft platforms
binary interface for templates instantiation on Microsoft platforms
binary interface for virtual inheritance in C++ on Microsoft platforms
binary representation of C++ namespaces on Microsoft platforms
calling conventions for C++ functions on Microsoft platforms
exception handling model for C++ on Microsoft platforms
layout of C++ exception objects on Microsoft platforms
layout of C++ stack frames for exception unwinding on Microsoft platforms
name mangling scheme for C++ symbols on Microsoft platforms
object layout for C++ classes on Microsoft platforms
virtual table (vtable) layout for C++ classes on Microsoft platforms
differsFrom Clang C++ ABI on non-Windows platforms
linked to: Itanium C++ ABI

GCC C++ ABI on Linux
Itanium C++ ABI
documentedBy Microsoft PE/COFF ABI documentation
linked to: Microsoft C++ ABI

Microsoft Visual C++ documentation
linked to: MSVC
ensures binary compatibility between C++ libraries built with MSVC
binary compatibility between C++ object files on Windows using MSVC
stable linkage of C++ symbols across MSVC versions when ABI-compatible
governs binary layout of C++ alignment and padding rules on MSVC
binary layout of C++ class data members on MSVC
binary layout of C++ closures on MSVC
binary layout of C++ lambdas on MSVC
binary layout of C++ member function pointers on MSVC
binary layout of C++ virtual function tables on MSVC
binary layout of std::string on MSVC
binary layout of std::vector on MSVC
influences ability to mix C++ libraries built with different MSVC versions
cross-compiler C++ binary compatibility on Windows
maintainedBy Microsoft
relatedTo Itanium C++ ABI
Microsoft Visual C++ name mangling
Microsoft x64 calling convention
linked to: Microsoft C++ ABI

Microsoft x86 calling conventions
linked to: Microsoft C++ ABI

SEH-based C++ exception handling on Windows
usedBy MSVC toolchain
Microsoft C++ standard library implementation
linked to: Microsoft C++ ABI

Microsoft Visual C++ compiler
linked to: MSVC

Windows C++ runtime libraries
Windows system C++ runtime (MSVCRT and successors)
usedOnPlatform Windows
Windows ARM
linked to: Windows RT

Windows x64
linked to: Windows

Windows x86
linked to: Windows 32-bit

How these facts were elicited

Referenced by (8)

Full triples — surface form annotated when it differs from this entity's canonical label.

Clang supportsABI Microsoft C++ ABI
Windows 32-bit primaryApplicationBinaryInterface Win32 ABI
linked to: Microsoft C++ ABI
MSVC providesABI Microsoft Visual C++ ABI
linked to: Microsoft C++ ABI
Itanium C++ ABI notUsedBy Windows C++ ABI
linked to: Microsoft C++ ABI
Microsoft C++ ABI relatedTo Microsoft x86 calling conventions
linked to: Microsoft C++ ABI
Microsoft C++ ABI relatedTo Microsoft x64 calling convention
linked to: Microsoft C++ ABI
Microsoft C++ ABI usedBy Microsoft C++ standard library implementation
linked to: Microsoft C++ ABI
Microsoft C++ ABI documentedBy Microsoft PE/COFF ABI documentation
linked to: Microsoft C++ ABI