Каково ключевое слово "интерфейс" в MSVC?

Я просматриваю SDK Windows 8.1 и в UnknownBase.h Я вижу такие вещи, как

typedef interface IUnknown IUnknown;

Я никогда не видел это ключевое слово interface. Обратите внимание, что это определенно заголовок .h, обработанный cl.exe. Это не IDL файл, и он не обрабатывается midl.exe.

Я нашел это онлайн: http://msdn.microsoft.com/en-us/library/50h7kwtb.aspx

Но __interface не совпадает с interface

Может кто-нибудь подскажет мне здесь?

Ответ 1

У Microsoft есть некоторые расширения для компилятора, такие как те, которые вы связали, но interface не должны быть родным ключевым словом для компилятора С++, а скорее определите, что что-то заменяет (в BaseTyps.h это было определено следующим образом)

# define interface  struct

Ссылка здесь

Если вы хотите проверить это, сделайте grep для такого определения, и вы должны найти что-то подобное.


Ссылки: http://social.msdn.microsoft.com/forums/vstudio/en-US/06bf1dea-1d20-4ec3-b9a1-3d673d7fcd8d/what-is-the-interface-keyword-in-native-c