我正在尝试熟悉c ++中的Kinect 2.0 SDK,以便创建自己的程序。但是,我很难理解一些代码。首先,当我试图追溯不同的结构声明时,我发现所有的函数都是虚函数,我无法找到它们实际定义的位置。 例如,如果您在visual studio中,并单击“IBody”并打开声明,它将带您进入一切都是虚拟的界面。如何确定实际定义的所有内容?
我尝试追溯其他功能,最终我被卡在“GetDefaultKinectSensor”上。该功能的定义是
HRESULT WINAPI GetDefaultKinectSensor(_COM_Outptr_ IKinectSensor** defaultKinectSensor);
这是一个函数声明?有谁能解释一下这个?
我理解C ++的基础知识,但对我来说这是一个新的领域。
谢谢!
答案 0 :(得分:1)
这是一个具有以下签名的函数:
HRESULT WINAPI GetDefaultKinectSensor(_COM_Outptr_ IKinectSensor** defaultKinectSensor);
//^return type ^calling convention ^name ^annotation ^argument type
命名 - GetDefaultKinectSensor
返回 - HRESULT
召集会议 - WINAPI
参数注释 - _COM_Outptr_
参数类型 - IKinectSensor**
请注意,_COM_Outptr_
注释具有以下描述:
返回的指针具有COM语义,因此带有_On_failure_后置条件,返回的指针为空。
裸功能签名将是
HRESULT GetDefaultKinectSensor(IKinectSensor** defaultKinectSensor);
也许调用约定和参数注释会让你失望。