We recommend using Visual Studio 2017

Compiler Warning (level 1) C4917


The latest version of this topic can be found at Compiler Warning (level 1) C4917.

declarator' : a GUID can only be associated with a class, interface or namespace

A user-defined structure other than class, interface, or namespace cannot have a GUID.

This warning is off by default. See Compiler Warnings That Are Off by Default for more information.

The following code sample generates C4917:

// C4917.cpp  
// compile with: /W1  
#pragma warning(default : 4917)  
__declspec(uuid("00000000-0000-0000-0000-000000000001")) struct S  
} s;   // C4917, don't put uuid on a struct  
int main()