Поделиться через


Ошибка компилятора C2778

неправильно сформирован guid в __declspec(uuid())

Неверный GUID предоставляется расширенному атрибуту uuid .

GUID должен быть строкой шестнадцатеричных чисел со следующим форматом:

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

Расширенный uuid атрибут принимает строки, распознанные CLSIDFromString, с разделителями фигурных скобок или без нее.

Следующий пример приводит к возникновению ошибки C2778:

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