Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать объём видеопамяти?

29K
17 марта 2010 года
asupdemon
29 / / 03.10.2008
Привет Всем! Хочу узнать объём видео памяти с помощью API-функций windows, нашёл функцию GetAvailableVidMem(), но не никак не могу получить реальное значение (видеокарта 512 Мб), подскажите плиз, что я не так делаю:

Код:
IDirectDraw7* pDirectDraw;
DWORD m_uLocalVidMemorySize, m_uTotalVidMemorySize, m_uAGPVidMemorySize;

HRESULT hr = CoCreateInstance(CLSID_DirectDraw7, NULL, CLSCTX_ALL,
                              IID_IDirectDraw7, (void**) &pDirectDraw);
if(!FAILED(hr))
{
  hr = IDirectDraw7_Initialize(pDirectDraw, NULL);
  if (!FAILED(hr))
  {
    DDSCAPS2 QueryCaps = { 0 };
    DWORD dwTotal, dwFree;
    QueryCaps.dwCaps = DDSCAPS_LOCALVIDMEM;
    hr = pDirectDraw->GetAvailableVidMem(&QueryCaps, &dwTotal, &dwFree);
    if (!FAILED(hr))
      m_uLocalVidMemorySize = dwTotal;
    QueryCaps.dwCaps = DDSCAPS_TEXTURE;
    hr = pDirectDraw->GetAvailableVidMem(&QueryCaps, &dwTotal, &dwFree);
    if (!FAILED(hr))
      m_uTotalVidMemorySize = dwTotal;
    m_uAGPVidMemorySize = m_uTotalVidMemorySize - m_uLocalVidMemorySize;
   }

  pDirectDraw->Release();
}
   Label24->Caption=m_uLocalVidMemorySize;


Получаю какое-то левое значение: 6950592
7
17 марта 2010 года
@pixo $oft
3.4K / / 20.09.2006
Уважаемый новоиспечённый,я,конечно,не знаю,как там в вашей среде разработки выполняется приведение типов,но рискну предположить,что
 
Код:
Label24->Caption=m_uLocalVidMemorySize
является присвоением текстовому свойству числа.Это вам не Visual Basic.Отсюда вы можете иметь неиллюзорные глюки,поэтому рекомендую всё же сконвертить в текст
29K
17 марта 2010 года
asupdemon
29 / / 03.10.2008
Если так
 
Код:
Label24->Caption=IntToStr(m_uLocalVidMemorySize);

, то всёравно не получается.
Выдаёт: 7017384
8.2K
17 марта 2010 года
bagie2
299 / / 26.10.2008
Есть такой WMI класс Win32_VideoController и у него свойство AdapterRAM
29K
19 марта 2010 года
asupdemon
29 / / 03.10.2008
Буду признателен если бы Вы показали пример работы с каким-нибудь WMI-классом, сейчас пытаюсь реализовать пример приведённый на msdn, пока безрезультатно.
29K
19 марта 2010 года
asupdemon
29 / / 03.10.2008
Спасибо Всем, особенно bagie2 за подсказку! С помощью WMI реализовал функцию, в результате получил:
AdapterRAM=536870912
это в байтах или 512 Мб:) УРА!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог