无法在c ++中创建d2d设备

时间:2013-02-12 12:53:19

标签: visual-c++

我不熟悉使用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源

请帮我解决这个问题。

如果需要进一步的详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

我建议您在定义<ng-container *ngFor="let cat of categories"> <ng-container *ngIf="cat.parent_cat === 'noParentCategory'"> <h3> {{cat.cat_name}} </h3> <ng-container *ngFor="let subcat of categoriesAndProducts"> <ion-list> <ng-container *ngIf="subcat.parent_cat === cat.$key"> <ion-item-divider> {{subcat.cat_name}} </ion-item-divider> <ion-item *ngFor="let prod of subcat.productDetails"> {{prod.details?.prod_name}} </ion-item> </ng-container> </ion-list> </ng-container> </ng-container> </ng-container> 时将options设置为D2D1_DEBUG_LEVEL_INFORMATION,然后您可能会在输出窗口中看到一些错误消息。例如,输出告诉我

  

D2D DEBUG WARNING - Direct3D设备未使用D3D11_CREATE_DEVICE_BGRA_SUPPORT创建,因此与Direct2D不兼容。

这真的很有帮助。