尝试使用MFC对象时访问冲突

时间:2012-10-17 13:19:09

标签: c++ mfc access-violation

我正在使用Kinect开发一个使用FPS计数器的MFC项目。这是一个静态文本。我希望通过一种方法来编辑这个FPS计数器,该方法也负责制作kinect图像。所以在我的主要内容中,我将HWND传递给我的kinect对象,如下所示:

kinect->initialize(this->GetSafeHwnd());

在我的kinect对象中,这个东西被保存了:

this->hwnd = hWnd;

然后这段代码初始化我想要使用的静态文本:

CStatic * MFC_ecFPSCOLOR;
MFC_ecFPSCOLOR = (CStatic *) GetDlgItem(hWnd, TC_FPSCOLOR);

然后我想用它:

MFC_ecFPSCOLOR->SetWindowTextW(L"TEST");

这里出错:

Unhandled exception at 0x54431C19 (mfc110ud.dll) in KinectMain.exe: 0xC0000005: Access violation reading location 0x0031004C.

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

您使用了错误版本的GetDlgItem,它会返回一个句柄,而不是CWnd*。演员正在隐藏你的错误。