Closed TopicStart new topicStart Poll

Страницы: (1) 1 
QqRuZa
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Здравствуйте!

Я вот на вашем форуме недавно и решил поинтересоваться...
может кто сталкивлся с такой вот проблемой:

1) Имеется приложение написанное на VC++ .NET
2) Vsiual Studio 2002
3) используется DirectX 8.0
-----------------------------------

Проблема:
Все компилится, линкуется и даже раньше запускалось... но вот обновил DirectX до последней версии и при запуске получаю ошибку

No Compatable D3D device found!

Однако на другой машине где стоит тоже последний DirectX все работает.

????? где собака зарыта ?

Я и винду сносил заново ставил... че я только не делал и видюхи разные пробовал ...

Вот кусок кода отвечающего за всю эту батву.
CODE

BOOL CMyApplication::InitializeD3D(D3DDEVICE_CREATION_PARAMETERS dcp, BOOL bWindowed, int iWidth, int iHeight)
{
   D3DDISPLAYMODE d3ddm;

   m_bWindowed = bWindowed;

   m_d3ddcp.hFocusWindow = dcp.hFocusWindow;
   m_d3ddcp.AdapterOrdinal = dcp.AdapterOrdinal;
   m_d3ddcp.DeviceType = dcp.DeviceType;
   m_d3ddcp.BehaviorFlags = dcp.BehaviorFlags;

   m_pD3D = Direct3DCreate8(D3D_SDK_VERSION);
   if(m_pD3D == NULL)
       return FALSE;

   if(FAILED(m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
       return FALSE;

   m_d3dpp.BackBufferCount = 1;
   m_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
   m_d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
   m_d3dpp.EnableAutoDepthStencil = TRUE;
   m_d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

   if(m_bWindowed)
   {
       m_d3dpp.BackBufferWidth = iWidth;
       m_d3dpp.BackBufferHeight = iHeight;  
       m_d3dpp.BackBufferFormat = d3ddm.Format;
       m_d3dpp.Windowed = TRUE;  
   }
   else
   {
       m_d3dpp.BackBufferWidth = d3ddm.Width;
       m_d3dpp.BackBufferHeight = d3ddm.Height;
       m_d3dpp.BackBufferFormat = d3ddm.Format;
       m_d3dpp.Windowed = FALSE;  
       m_d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
    m_d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_ONE;
   }

   m_iWndWidth = m_d3dpp.BackBufferWidth;
   m_iWndHeight = m_d3dpp.BackBufferHeight;

   if(FAILED(m_pD3D->CreateDevice(dcp.AdapterOrdinal,  dcp.DeviceType, dcp.hFocusWindow,
       dcp.BehaviorFlags, &m_d3dpp, &m_pD3DDevice)))
       return FALSE;

   return TRUE;
}


А само приложение очень простое - это кубик с наклейнными на грани фотками... который может вращаться сжиматься и тд...

Если нужен весь код могу прислать...просто он очень длинный и сдесь его постить бессмысленно.

Спасибо, что дочитали доконца... ))))
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
a)
Задекларируйте локальную переменную HRESULT hr = S_OK;
Измените все if(FAILED( на if(FAILED(hr=;
Измените тип возвращаемого значения с BOOL на HRESULT;
Возвращайте всегда hr;

б) А теперь запустите всю эту байду, запостите сюда параметры функции на входе, полученный код возврата и с какого этапа.

И вам тут же помогут. :))
Unknown_Identifier
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 199
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
QUOTE (QqRuZa @ 22.06.2006 - время: 01:14)
Я вот на вашем форуме недавно и решил поинтересоваться...
может кто сталкивлся с такой вот проблемой:

А с какими конкретно параметрами создаешь девайс?
На втором компе версия DX строго такая же?
Когда обновлял DX у себя, возможно переключил его в debug mode?
Кстати если не переключил - переключи и поставь режим вывода в лог варнингов и ошибок - узнаешь о программе много интересного :)
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)

Страницы: (1) 1

Closed TopicStart new topicStart Poll0


Рекомендуем почитать также топики:

Программирование промышленных контроллеров

Windows Server 2003

ICS, VPN, Win Ser 2003

Головоломка - как кинуть сеть?

Несколько устройств на IDE-портах



>