我成功创建了一个空窗口,可以打开并坐在那里直到我关闭它。接下来,我想尝试使用Direct 2-D在该窗口中绘制简单的东西。我创建了一个初始化Direct 2-D然后绘制到窗口的类,但在我添加这个类后,我的窗口将不再打开。稍微摆弄一下后,它现在打开但随后冻结,我收到一条消息,说“发生问题导致程序行为异常”,并且有一个按钮“关闭程序。”
窗口从未打开到打开,然后在我添加返回false后给出错误,如果不是下面的s_ok,则显示错误
//creating factory
HRESULT d2dFactHRes = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &Direct2DFactory);
if (!S_OK)
return false;
//creating render target.
HRESULT RenTargHRes = Direct2DFactory->CreateHwndRenderTarget(D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_DEFAULT, D2D1::PixelFormat(), 0.0F, 0.0F, D2D1_RENDER_TARGET_USAGE_NONE, D2D1_FEATURE_LEVEL_DEFAULT), D2D1_HWND_RENDER_TARGET_PROPERTIES(), &pRT);
if (!S_OK)
return false;
我设置了一个断点来尝试检查EndDraw()函数的返回值,当我启动调试器时,我收到错误消息“0x00E4264F发生了未处理的异常,从位置读取0x00000000时发生访问冲突0000005"
我认为这个错误发生在BeginDraw函数到达断点之前。
void Graphics::BeginDraw()
{
pRT->BeginDraw(); //pRT is pointer to render target.
}
我不知道这意味着什么。我假设某些东西不在记忆中它试图阅读?
我很感激任何建议。感谢。