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 に答える