【发布时间】:2014-02-04 18:41:47
【问题描述】:
我有一个 d3dDevice:
ComPtr<ID3D11Device1>d3dDevice;
我在这里将它用于 dxgiDevice:
ComPtr<IDXGIDevice3> dxgiDevice2;
HRESULT hr;
hr = d3dDevice.As( &dxgiDevice2 ); // S_OK
hr = d2dFactory->CreateDevice( dxgiDevice2.Get(), d2dDevice.GetAddressOf() ); // E_INVALIDARG One or more arguments are invalid
hr = d2dDevice->CreateDeviceContext(
D2D1_DEVICE_CONTEXT_OPTIONS_NONE,
&d2dDeviceContext
);
为什么这个错误会在运行时发生?
http://msdn.microsoft.com/en-us/library/windows/desktop/dn280482(v=vs.85).aspx
与问题相关的全部代码:http://pastebin.com/P7Rs9xdh
【问题讨论】:
-
你试过
&d2dDevice吗? -
@ichramm 为什么?
GetAddressOf语法没有任何问题——这实际上是 MS 现在显示其示例代码的方式。