Поскольку возвращаемое значение функции используется для сообщения об ошибке, как функции возвращают необходимую информацию обратно вызывающему абоненту?Функции Direct3D 9 возвращают значение
Например: IDirect3D9::CreateDevice method
Поскольку возвращаемое значение функции используется для сообщения об ошибке, как функции возвращают необходимую информацию обратно вызывающему абоненту?Функции Direct3D 9 возвращают значение
Например: IDirect3D9::CreateDevice method
Так что, если вы посмотрите на эту ссылку, вы заметите, что он имеет некоторые параметры, отмеченные 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
. Ex:
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
}
Таким образом, вызывающий абонент CreateDevice ( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, HWND, pPresentationParams, & pDevice); , в то время как значение возвращается через D3DPRESENT_PARAMETERS * pPresentationParameters. Я прав? – zzz
На самом деле есть два возвращаемых значения, обновляется «D3DPRESENT_PARAMETERS» (как указано пометкой 'out'), а' pDevice' присваивается указателем на 'IDirect3DDevice9'. Все это, конечно, предполагает, что возвращаемое значение функции - 'S_OK', если нет ... все ставки отключены. – Mgetz
@zzz - это описание возвращаемых значений и выходных параметров. – zdd
вы можете указать на пример? (Ссылка для MSDN бы) – Mgetz
ссылка MSDN обновленный – zzz