私はWindowsアプリケーションとC++での作業に不慣れです。このコード「 http://msdn.microsoft.com/en-us/library/windows/desktop/hh404272(v=vs.85).aspx 」に従って、d3d11デバイスのDxgiサーフェスからD2Dデバイスを作成しようとしています。
しかし、HRESULT gr(d2dデバイスの作成)では、与えられたのと同じ手順を実行しましたが、エラー「E_INVALIDARG」が表示されます。
これがコードスニペットです。//m_deviceはすでに初期化されています
//DXGIデバイスを取得します
IDXGIDevice* DxgiDevice = nullptr;
HRESULT hr = m_Device->QueryInterface(__uuidof(IDXGIDevice), reinterpret_cast<void**>(&DxgiDevice));
// create id2d21factory
ID2D1Factory1* m_d2dFactory=nullptr;
D2D1_FACTORY_OPTIONS options;
options.debugLevel= D2D1_DEBUG_LEVEL_NONE;
D2D1_FACTORY_TYPE factoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED;
hr = D2D1CreateFactory(factoryType, __uuidof(ID2D1Factory1),&options, reinterpret_cast<void **> (&m_d2dFactory));
HRESULT gr= m_d2dFactory->CreateDevice(DxgiDevice, &m_d2dDevice );
このコードでは、Visual Studio 2012でソリューションをコンパイルまたは構築しているときにエラーが発生することはありません。ただし、デバッグ中にエラーが発生します。このコードをMicrosoftのデスクトップ複製サンプルコードに挿入しようとしています。プロジェクトのd2dbitmapソースを作成する必要があります
これで私を助けてください。
さらに詳しい情報が必要な場合はお知らせください。