#include <ddraw.h>
#pragma comment(lib, "Strmiids.lib")
static void LogOutVideoMemory()
{
LPDIRECTDRAW2 lpdd;
HRESULT ddrval;
CoInitialize(NULL);
ddrval = CoCreateInstance(CLSID_DirectDraw,
NULL, CLSCTX_ALL, IID_IDirectDraw2, (void**)&lpdd);
if(!FAILED(ddrval))
{
ddrval = IDirectDraw2_Initialize(lpdd, NULL);
}
DDCAPS ddcaps;
ddcaps.dwSize = sizeof DDCAPS;
lpdd->GetCaps(&ddcaps, NULL);
lpdd->Release();
int iMem = ddcaps.dwVidMemTotal/1024/1024;
CAPPLog::Log(LOG_INFO, _T("Total display memory is (%d) %d MB"), ddcaps.dwVidMemTotal, iMem);
iMem = ddcaps.dwVidMemFree / 1024 / 1024;
CAPPLog::Log(LOG_INFO, _T("Free display memory is (%d) %d MB"), ddcaps.dwVidMemFree, iMem);
CoUninitialize();
}
notice:
我原样贴出了我在我们工程里面写的代码, 里面有个CAPPLog::Log是用来写log到某个文件的,直接改成_tprintf就可以直接用了。
reference:
http://blog.csdn.net/bohut/archive/2004/10/26/152234.aspx
#pragma comment(lib, "Strmiids.lib")
static void LogOutVideoMemory()
{
LPDIRECTDRAW2 lpdd;
HRESULT ddrval;
CoInitialize(NULL);
ddrval = CoCreateInstance(CLSID_DirectDraw,
NULL, CLSCTX_ALL, IID_IDirectDraw2, (void**)&lpdd);
if(!FAILED(ddrval))
{
ddrval = IDirectDraw2_Initialize(lpdd, NULL);
}
DDCAPS ddcaps;
ddcaps.dwSize = sizeof DDCAPS;
lpdd->GetCaps(&ddcaps, NULL);
lpdd->Release();
int iMem = ddcaps.dwVidMemTotal/1024/1024;
CAPPLog::Log(LOG_INFO, _T("Total display memory is (%d) %d MB"), ddcaps.dwVidMemTotal, iMem);
iMem = ddcaps.dwVidMemFree / 1024 / 1024;
CAPPLog::Log(LOG_INFO, _T("Free display memory is (%d) %d MB"), ddcaps.dwVidMemFree, iMem);
CoUninitialize();
}
notice:
我原样贴出了我在我们工程里面写的代码, 里面有个CAPPLog::Log是用来写log到某个文件的,直接改成_tprintf就可以直接用了。
reference:
http://blog.csdn.net/bohut/archive/2004/10/26/152234.aspx