我正在浏览Windows 8.1 SDK和UnknownBase.h中的内容
typedef interface IUnknown IUnknown;
我从来没有见过这个 interface
关键字之前。请注意,这绝对是一个 .h
标题,由...处理 cl.exe
。它不是IDL文件,它不会被处理 midl.exe
。
我在网上发现了这个: http://msdn.microsoft.com/en-us/library/50h7kwtb.aspx
但 __interface
是不一样的 interface
谁能在这里提醒我?
Microsoft有一些特定于编译器的扩展,例如您链接的扩展 interface
不应该是本机C ++编译器特定的关键字,而是一个替代某些东西的定义(在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