Compiler Error C2778


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Error C2778.

improperly formed GUID in __declspec(uuid())

An incorrect GUID is supplied to the uuid extended attribute.

The GUID must be a string of hexadecimal numbers with the following format:

// C2778a.cpp  
// compile with: /c  
struct __declspec(uuid("00000000-0000-0000-0000-000000000000")) A {};  
struct __declspec(uuid("{00000000-0000-0000-0000-000000000000}")) B{};  

The uuid extended attribute accepts strings recognized by CLSIDFromString, with or without brace delimiters.

The following sample generates C2778:

// C2778b.cpp  
struct __declspec(uuid(" 00000000-0000-0000-0000-000000000000 ")) C { };   // C2778  
struct __declspec(uuid("00000000000000000000000000000000")) D { };   // C2778