D1108: 잘못된 팩터리
리소스 [리소스]는 팩터리 [factory 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].
가능한 원인
리소스 사용이 잘못되었습니다. 한 팩터리에서 할당한 리소스가 다른 팩터리에서 사용되었습니다.