我试图根据此How to save ID2D1Bitmap to PNG file
将ID2D1位图保存到文件中这可以在Windows 7中完成吗?没有任何平台更新?
我收到一个未处理的异常。 (Aceess违规阅读):
if (SUCCEEDED(hr))
{
hr = m_pWICFactory->CreateBitmap(
sc_bitmapWidth,
sc_bitmapHeight,
GUID_WICPixelFormat32bppPBGRA,
WICBitmapCacheOnLoad,
&pWICBitmap
);
}
我已宣布m_pWICFactory& m_pDirect2dFactory as:
ID2D1Factory* m_pDirect2dFactory;
IWICImagingFactory *m_pWICFactory;
有人可以解释我的问题吗?
答案 0 :(得分:1)
我非常确定您有空m_pWICFactory
(因为您链接的帖子并不包含该代码)。您是否在使用前首先将其初始化?它通常使用类似的成员函数完成,并在执行需要工厂的其他操作之前调用。
HRESULT CreateDeviceIndependentResources()
{
HRESULT hr;
// Create a Direct2D factory.
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pDirect2dFactory);
if (SUCCEEDED(hr))
{
// Create a WIC factory.
CoCreateInstance(
CLSID_WICImagingFactory,
NULL,
CLSCTX_INPROC_SERVER,
IID_IWICImagingFactory,
reinterpret_cast<void **>(&m_pWICFactory)
);
}
return hr;
}
有关详细信息,请参阅MSDN中的Using the Windows Imaging Component。