1
我的代碼的IDirectDraw :: GetCaps返回DDERR_INVALIDPARAMS
(又名E_INVALIDARG
,又名80070057)這個小片段。什麼可能會導致IDirectDraw :: GetCaps返回DDERR_INVALIDPARAMS?
的加載DLL是ddraw.dll 5.03.2600.5512(xpsp.080413-0845)
我需要檢查顯示硬件是否具有三維加速度(DDCAPS_3D)。
我也沒辦法解決的問題,該片段是如此簡單,我失去的東西嗎?
非常感謝。
亞歷山德羅
#include <ddraw.h>
#include <iostream>
#define TEST_HR(hr) if(hr!=DD_OK){ std::cout << "Error 0x" << std::hex << static_cast<unsigned long>(hr) << " at line: " << std::dec << __LINE__; return __LINE__;}
int main(int argc, char* argv[])
{
::CoInitialize(0);
IDirectDraw* dd;
TEST_HR(::DirectDrawCreate(0, &dd, 0));
DDCAPS hel_caps, hw_caps;
::ZeroMemory(&hel_caps, sizeof(DDCAPS));
::ZeroMemory(&hw_caps, sizeof(DDCAPS));
TEST_HR(dd->GetCaps(&hw_caps, &hel_caps));
::CoUninitialize();
return 0;
}
非常感謝您! – 2009-12-10 10:14:38