0

由于函数的返回值用于错误消息,函数如何将必要的信息返回给调用者?

例如: IDirect3D9::CreateDevice 方法

4

1 回答 1

1

因此,如果您查看该链接,您会注意到它有一些参数标记Out为重要,因为这表示将返回给调用者的内容。

HRESULT CreateDevice(
[in]           UINT Adapter,
[in]           D3DDEVTYPE DeviceType,
[in]           HWND hFocusWindow,
[in]           DWORD BehaviorFlags,
[in, out]      D3DPRESENT_PARAMETERS *pPresentationParameters,
[out, retval]  IDirect3DDevice9 **ppReturnedDeviceInterface
);

在上面的示例中(从 MSDN 链接复制和粘贴),您会注意到一个参数ppReturnedDeviceInterface被标记为正在**或指向指针的指针,调用者将传入其指针的地址并返回一个指针地址。此外,D3DPRESENT_PARAMETERS传入的结构pPresentationParameters将在返回时更新,如out注释所述。前任:

IDirect3DDevice9 *pDevice = NULL;

HRESULT hr = pD3D->CreateDevice(
                     D3DADAPTER_DEFAULT,
                     D3DDEVTYPE_HAL,
                     hwnd,
                     pPresentationParams,
                     &pDevice);
 if(SUCCEEDED(hr))
 {
    //pDevice should be non null at this point
 }
于 2013-07-01T14:13:36.990 回答