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