MSVC中的"interface"关键字是什么?

fie*_*sor 14 c c++ com winapi visual-studio

我正在浏览Windows 8.1 SDK和UnknownBase.h中的内容

typedef interface IUnknown IUnknown;
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这个interface关键字.请注意,这绝对是一个.h标题,由处理cl.exe.它不是IDL文件,它不会被处理midl.exe.

我在网上找到了这个:http://msdn.microsoft.com/en-us/library/50h7kwtb.aspx

但是__interface不一样interface

有人能在这里提醒我吗?

Mar*_* A. 12

Microsoft有一些特定于编译器的扩展,例如您链接的扩展,但interface不应该是本机C++编译器特定的关键字,而是替换某些东西的定义(在BaseTyps.h中,它曾用于定义如下)

# define interface  struct
Run Code Online (Sandbox Code Playgroud)

链接在这里

如果你想验证这个为这样的定义做grep,你应该找到类似的东西.


参考文献:http://social.msdn.microsoft.com/forums/vstudio/en-US/06bf1dea-1d20-4ec3-b9a1-3d673d7fcd8d/what-is-the-interface-keyword-in-native-c

  • 哇,是的,就是这样.我做了一个'FINDSTR/S/I/C: "#定义界面"*`从内`C:\ Program Files文件(x86)的\的Windows套件\ 8.1\Include`,并在`combaseapi.h`我发现`#定义接口struct` (2认同)