D1108: 間違ったファクトリ
リソース [リソース] はファクトリ [ファクトリ 1] によって割り当てられ、ファクトリ [ファクトリ 2] で使用されました。
プレースホルダー
-
リソース
-
インターフェイスのアドレス。
-
ファクトリ 1
-
リソースを割り当てたファクトリのアドレス。
-
ファクトリ 2
-
リソースが使用されたファクトリのアドレス。
例
次の例では、最初に 2 つのデバッグ対応 ID2D1Factory オブジェクトを 作成します。次に、最初のファクトリからジオメトリを作成し、2 番目のファクトリからブラシを作成します。 最後に、 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].
考えられる原因
リソースの使用状況が無効です。 あるファクトリによって割り当てられたリソースが、別のファクトリで使用されました。