求助,这个this指针让我崩溃
1:IUnknown *temp = (IPeople*)(this);
if(riid == IID_IUnknown)
*ppv = (temp = (IPeople*)(this));
else if(riid == IID_IPeople)
2: *ppv = (temp = (IPeople*)(this));
程序运行的时候出错,发现问题出在这里,可是很诡异。在1的时候调试this为地址为0X003ef640并且有虚指针指向0X10018898,这里完全正确,因为虚指针指向的是正确的虚函数表。
在2的时候调试this为地址为0X003ef640,但是诡异的是虚函数指针指向的是0X003ef640,指向了完全错误的虚函数表,这不对啊,我没动this指针
[解决办法]
第二个指针指向了(temp = (IPeople*)(this))的运行结果?
[解决办法]
第二个指针指向了(temp = (IPeople*)(this))
应该不一样。
[解决办法]
注意对象的生命周期啊,刚才的回复怎么没了