- C/C++ code
#include "stdafx.h"#include "test_out.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 唯一的应用程序对象CWinApp theApp;using namespace std;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){ HDC hdc = CreateDC(L"DISPLAY", NULL, NULL, NULL);CDC MemDC;CDC *pDC=(CDC *)GetDC(NULL);MemDC.CreateCompatibleDC (pDC);HWND hDesktop=::GetDesktopWindow ();CRect rect;GetWindowRect(hDesktop, &rect); CBitmap bmpFace;bmpFace.CreateCompatibleBitmap(pDC,rect.Width (),rect.Height ());CBitmap* pOldBmp = NULL; pOldBmp = MemDC.SelectObject(&bmpFace);CBrush brush(RGB(255,255,255)); MemDC.FillRect(rect,&brush); for(int i=0;i<500;i++) { MemDC.MoveTo(22+i,22); MemDC.LineTo(22+i,277); } pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,rect.left,rect.top,SRCCOPY); MemDC.SelectObject(pOldBmp); bmpFace.DeleteObject(); return 0;}
调试不报错,运行出错!“test_out.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。”
------解决方案--------------------------------------------------------
设置断点
------解决方案--------------------------------------------------------
DEBUG 模式,F9设置断点看看是哪里错误了
------解决方案--------------------------------------------------------
CDC *pDC=(CDC *)GetDC(NULL);
GetDC得到的是DC句柄,不能强制转换为CDC类指针,如果要使用CDC类指针,可以用CDC::FromHandle(GetDC(NULL))。
------解决方案--------------------------------------------------------
帮你顶,顶到你解决问题压