m_pFont是控件的字体属性
在OnDraw中:
//设置文本字体
IFont* pIFont;
//
m_pFont->QueryInterface(IID_IFont, reinterpret_cast<void**>(&pIFont));
这段程序有什么错误?
为什么报错Exception:p != 0?
我初学com,请指教,尽量详细点阿!

解决方案 »

  1.   

    这个明显是QI里面在检查他的回返指针是不是空的哇~你空了还是这个Expcetion么~?
      

  2.   

    m_pFont是个智能指针吗?
    Exception:p != 0?这句话是不是提示你 m_pFont.p是个空指针?
      

  3.   

    这句是不是该写成:
    m_pFont->QueryInterface(IID_IFont, &pIFont);
    呢?just try.
      

  4.   

    m_pFont是在stock prop里添加Font生成的阿
    CComPtr<IFontDisp> m_pFont;
    m_pFont.p是?
    我初学,不太懂
      

  5.   

    133:          IFont* pIFont = NULL;
    0160798A      mov  dword ptr [ebp-30h],0     /////////1
    134:          //
    135:          m_pFont->QueryInterface(IID_IFont,
    136:                                  reinterpret_cast<void**>(&pIFont));
    01607991   mov         esi,esp            /////////2程序在1位置时pIFong = 0xcccccccc
    到了2位置变为了0x00000000这段是在OnDraw里面的,是不是pIFont 初始化失败了?
    为什么到了2那成了0x00000000?
    我不懂