在线等待关于queryinterface的问题
为什么用指针的指针来取得指定的接口,只用指针为什么不行呢?
例如:
IMotion *p;
QueryInterface(IID_IMOTION, (void**)&p);
&p的含义是什么?即它所指的是什么内容?谢谢
[解决办法]
p 是返回query到的指针~
QI是为了支持更复杂的规则,比如在QI里面根据请求创建所需要的Object等等,而C++的只能通过继承来实现这点~
[解决办法]
&p是就指针的地址.
你可这样理解:
typedef IMotion* LPMOTION;
typedef void* LPVOID;
把你的代码改写成:
LPMOTION p;
QueryInterface(IID_IMOTION, (LPVOID*)&p);
是不是好理解了呢?
[解决办法]
这个指针变量的地址~