GDI 初始化崩溃了应用程序



i具有以下C 线,该线从GDI的设备上下文中获取GDI 句柄:

//HDC hDC = device context from GDI
if(hDC)
{
    //Obtain graphics handle for GDI++
    Graphics* pgrpx = new Graphics(hDC);    //I get invalid memory exception here
    //Code continues
    //...
    //Free object
    delete pgrpx;
    pgrpx = NULL;
}

它在我的测试中正常工作。

,但最近我收到了该应用的崩溃转储,其中"线程引用的内存位置,它无权访问"我在代码上方指向的行的例外 - 就在应该初始化的图形对象的位置。

这里有什么问题?以及如何解决它?

您是否检查了GDI 的初始化?我不确定问题是否在这里,但是您可以尝试一下。

Gdiplus::GdiplusStartupInput    gdiplusStartupInput;
ULONG_PTR                       gdiplusToken;
if(GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL) != Gdiplus::Ok)
{
    MessageBox(NULL, TEXT("GDI+ failed to start up!"),
        TEXT("Error!"), MB_ICONERROR);
    return -1;
}

最新更新