+ -
当前位置:首页 → 问答吧 → CreateCompatibleDC失败,但GetLastError()为0?

CreateCompatibleDC失败,但GetLastError()为0?

时间:2011-12-08

来源:互联网

C/C++ code

    CDC *pDC = CDC::FromHandle(hDC);  
    int m = GetLastError();
    HDC memDC = CreateCompatibleDC(hDC);  
    int n = GetLastError();




CreateCompatibleDC(hDC) 返回NULL

作者: wuxiao1983   发布时间: 2011-12-08

CreateCompatibleDC(hDC)返回NULL,说明hDC无效
那你之前的 CDC *pDC = CDC::FromHandle(hDC); 成功了么?int m = GetLastError();也应该无效吧。
要不你先把前两句注释了再看看int n = GetLastError();的值。
=====================================================================================
MSDN上说Some functions call SetLastError under conditions of success。
是不是有函数SetLastError()了 

作者: echoyin59   发布时间: 2011-12-08

第一行没有用 hdc是函数外传进来的 hdc是有值的

作者: wuxiao1983   发布时间: 2011-12-08

int n = GetLastError();你上面都没判断是否为NULL就直接调这个getlasterror了啊,那成功怎么说,成功的话本身就是返回0啊

作者: xuddk727   发布时间: 2011-12-08