C++ ID2D1bitmap的问题

C++ ID2D1bitmap的问题,c++,visual-c++,mfc,direct2d,wic,C++,Visual C++,Mfc,Direct2d,Wic,我正试图根据以下命令将ID2D1bitmap保存到文件中 这可以在Windows7中完成吗?没有任何平台更新 我得到一个未处理的异常。(ACESS违规阅读)位于: 我已将m_pWICFactory和m_pDirect2dFactory声明为: ID2D1Factory* m_pDirect2dFactory; IWICImagingFactory *m_pWICFactory; 有人能给我解释一下这个问题吗?我很确定你有一个空的m\pWICFactory(因为你链接到的帖子不包含该代码)。使用

我正试图根据以下命令将ID2D1bitmap保存到文件中

这可以在Windows7中完成吗?没有任何平台更新

我得到一个未处理的异常。(ACESS违规阅读)位于:

我已将m_pWICFactory和m_pDirect2dFactory声明为:

ID2D1Factory* m_pDirect2dFactory;
IWICImagingFactory *m_pWICFactory;

有人能给我解释一下这个问题吗?

我很确定你有一个空的
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;
}
HRESULT CreateDeviceIndependentResources()
{
HRESULT-hr;
//创建Direct2D工厂。
hr=D2D1CreateFactory(D2D1\u工厂\u类型\u单螺纹,&m\u pDirect2dFactory);
如果(成功(hr))
{
//创建一个WIC工厂。
协同创建实例(
CLSID_Wicimaging工厂,
无效的
CLSCTX_INPROC_服务器,
IID_Iwicimaging工厂,
重新解释铸造(和铸造厂)
);
}
返回人力资源;
}

有关更多信息,请参阅MSDN。

能否提取一个最小但完整的示例来说明问题?目前,信息太少,无法说明发生了什么。您是否调用了CoCreateInstance来初始化指向实际iWicMagingFactory对象的指针?输出图像只是空的,带有白色,类似于此用户[link]()最初遇到的问题。但是,我已经调试了代码,与他不同,hr=s_OK。出现了什么问题?请确保您有一个有效的
pBitmap
,它是从同一ID2D1Factory对象创建的。
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;
}