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

Ваш аккаунт

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

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

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

DirectX 9.0 + CreateDevice + FloatToStr

9.9K
24 сентября 2005 года
KhArt
11 / / 23.08.2005
Господа, проблема в следующем!
Среда разработки СиБилдер 6.0 + DirectX SDK 9.0 в WindowsXP SP2 (сборку не помню)

После выполнения кода
Код:
HRESULT t3dScene::InitD3D( HWND hWnd)
{

    g_pD3D = NULL;
    g_pd3dDevice = NULL;
    g_pVBxy = NULL;
    g_pVBxz = NULL;
    g_pVByz = NULL;
    g_pVBaxes = NULL;
    g_pVBr = NULL;
    g_pVBs = NULL;
    g_pVBX = NULL;
    g_pVBp = NULL;
    font = NULL;
    // Создание Direct3D объекта.
    if( NULL == ( g_pD3D = _Direct3DCreate9( D3D_SDK_VERSION ) ) )
    {
        return E_FAIL;
    }
    // Создание структуры необходимой для инициализации D3DDevice.
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory( &d3dpp, sizeof(d3dpp) );

    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
    d3dpp.EnableAutoDepthStencil = TRUE;
    d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

    // Создание D3DDevice устройства.
    // Используется софтвеерная обработка вертексов для совместимости с большим
    // количеством видеоадаптеров.

    if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                      D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                      &d3dpp, &g_pd3dDevice ) ) )
                                      //&d3dpp, &(LPDIRECT3DDEVICE9)p ) ) )
    {
        return E_FAIL;
    }
// здесь делаю выход для чистоты эксперимента
...


нарушается работа FloatToStrF и FloatToStr.
т.е.
 
Код:
FloatToStr(25.)

выдает не "25" а "25,00000123".

По моему скромному мнению похоже на пролет по пямяти, запись в чужую часть стека или что-то в этом духе. НО почему?!! 3D часть приложения работает без особых претензий а FloatToStr летит ко всем честям... Возможно переметры передаваемые в функцию, но какие?
9.9K
27 сентября 2005 года
KhArt
11 / / 23.08.2005
Так-с, покопался понял что портится
Sysutils::FloatToText(...)...
от этого не легче...

Господа, может быть я передаю не совместимые параметры в функции DirectX?
Тестировал на 5 машина, с разнами дистрибутивами DX9, везде проблема...
310
27 сентября 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by KhArt
Господа, проблема в следующем!
После выполнения кода
нарушается работа FloatToStrF и FloatToStr.
т.е.
 
Код:
FloatToStr(25.)

выдает не "25" а "25,00000123".


А если не будет того кода, то нормально отрабатывает?
Не пробовал вместо FloatToStr использовать sprintf?

9.9K
28 сентября 2005 года
KhArt
11 / / 23.08.2005
[QUOTEНе пробовал вместо FloatToStr использовать sprintf? [/QUOTE]

Пробовал!!! Та же хрень!
Я вопрос по подробней повешу на теме про DirectX...
310
28 сентября 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by KhArt
[QUOTEНе пробовал вместо FloatToStr использовать sprintf?



Пробовал!!! Та же хрень!
Я вопрос по подробней повешу на теме про DirectX... [/QUOTE]
Без кода DirectX функция FloatToStr отрабатывает иначе?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог