D1108:错误的工厂
资源 [资源] 由工厂 [工厂 1] 分配,并与工厂 [工厂 2] 一起使用。
占位符
-
资源
-
接口的地址。
-
工厂 1
-
分配 资源的工厂的地址。
-
工厂 2
-
使用 资源的 工厂的地址。
示例
以下示例首先创建两个启用调试的 ID2D1Factory 对象;然后,它从第一个工厂创建一个几何图形,并从第二个工厂创建一个画笔。 最后,它调用 FillGeometry,传入几何图形和画笔。
// If you set the options.debugLevel to D2D1_DEBUG_LEVEL_NONE,
// the debug layer is not enabled.
#if defined(DEBUG) || defined(_DEBUG)
D2D1_FACTORY_OPTIONS options;
options.debugLevel = D2D1_DEBUG_LEVEL_INFORMATION;
hr = D2D1CreateFactory(
D2D1_FACTORY_TYPE_SINGLE_THREADED,
options,
&m_pD2DFactory
);
#else
hr = D2D1CreateFactory(
D2D1_FACTORY_TYPE_SINGLE_THREADED,
&m_pD2DFactory
);
#endif
// Domain violation. Create a second Direct2D factory.
options.debugLevel = D2D1_DEBUG_LEVEL_INFORMATION;
hr = D2D1CreateFactory(
D2D1_FACTORY_TYPE_SINGLE_THREADED,
options,
&m_pD2DFactory1
);
// Create a geometry from the second factory.
hr = m_pD2DFactory1->CreateRectangleGeometry(
D2D1::RectF(100, 50, 400, 160),
&m_pRectangleGeometry
);
C++ |
---|
|
C++ |
---|
|
C++ |
---|
|
此示例生成以下调试消息:
D2D DEBUG ERROR - The resource [003BD628] was allocated
by factory [002ED698] and used with factory [002ED470].
可能的原因
资源使用无效。 一个工厂分配的资源与另一个工厂一起使用。