读书人

这个this指针让小弟我崩溃

发布时间: 2012-10-12 10:17:04 作者: rapoo

求助,这个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))
应该不一样。
[解决办法]
注意对象的生命周期啊,刚才的回复怎么没了

读书人网 >VC/MFC

热点推荐