Форум: "Прочее";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
ВнизПомогите из DWORD а получить Single Найти похожие ветки
← →
ProgRAMmer Dimonych © (2006-12-22 20:53) [0]Сел тут поизучать книжку одну: "DirectX графика в проектах Delphi" (Краснов). Идёт там, значит, описание GetRenderState и SetRenderState у IDIRECT3DDEVICE8. Написано, что в SetRenderState в виде DWORD-значения передаётся Single-число таким способом: PDWORD(@PointSize)^, где PointSize:Single. А как из GetRenderState"ом полученного DWORD"а сделать обратно Single? И есть ли вообще какой-нибудь общий подход к разгадыванию таких загадок (т.е. как можно получать последовательность преобразований, обратную данной в общем случае)?
P.S. В очередной раз убедился, что по части всех преобразований и приведений типов я полный нуль :(
← →
ors_archangel © (2006-12-22 21:10) [1]PSingle(@DwordValue)^ ?
Алгоритм получения обратных преобразований заключается в замене всех приведений к типу A, или ^A на B или ^B и наоборот.
> полный нуль
На самом деле это очень извращённая форма приведения типов: сначала берём адрес переменной любого типа, потом приводим его к типизированному указателю (PSingle), затем операция разымёнывания даёт значение укзателя, теперь уже типа single. Видимо, необходим ещё механизм принудительного приведения типов, чтобы можно было писать, например s := force Single(d), где force - какое-то ключевое слово, это было бы намного понятней. (Вообще, запись s := d допустима, но она делает fild, fstp - т.е. округление)
← →
Ученик чародея © (2006-12-22 21:19) [2]var numS:single;
var numDW:DWord;
NumS:=(PSingle(@NumDW))^;
← →
Ученик чародея © (2006-12-22 21:20) [3]А вообще указатели и рекурсия - зло, так как путь к потенциальным глюкам.
← →
ors_archangel © (2006-12-22 21:26) [4]Рекурсия - естественна
← →
wicked © (2006-12-22 21:30) [5]> Ученик чародея © (22.12.06 21:20) [3]
> А вообще указатели и рекурсия - зло, так как путь к потенциальным
> глюкам.
гггг... бриться - зло, так как путь к потенциальным порезам
> ors_archangel © (22.12.06 21:26) [4]
> Рекурсия - естественна
указатели - тоже...
← →
Gero © (2006-12-22 21:31) [6]> [3] Ученик чародея © (22.12.06 21:20)
Программирование — зло.
← →
ProgRAMmer Dimonych © (2006-12-22 21:35) [7]> Gero © (22.12.06 21:31) [6]
> Программирование — зло.
А это высказывание - ересь :)
← →
ProgRAMmer Dimonych © (2006-12-22 21:41) [8]Блин, люди, создал новый проект, кинул на форму три Edit"а и кнопку. В обработчике клика по кнопке написал перевод StrToCurr(Edit1.Text) в DWORD и обратно с забрасыванием результата и промежуточного DWORD"а в соответствующие Edit"ы. В DWORD"е ещё покруче ересь, оказывается. Извращенцы в Microsoft"е, однако. Такую фигню в DirectX засунули!!!
← →
Loginov Dmitry © (2006-12-22 23:15) [9]> DirectX графика в проектах Delphi" (Краснов).
Одна только фамилия автора заставляет призадуматься над ценностью данной литературы.
← →
Gero © (2006-12-22 23:36) [10]> [9] Loginov Dmitry © (22.12.06 23:15)
А это что, родственник Фленова?
← →
Loginov Dmitry © (2006-12-22 23:39) [11]Возможно. Дальний.
← →
Loginov Dmitry © (2006-12-22 23:43) [12]Вспомнилось одно рассуждение Краснова из программирования OpenGL в Дельфи, насчет того, что Null не пашен. В Windows SDK сказали, что в функцию можно передать Null, а Delphi ругается, типа Can not convert variant... Оказывается, Дельфи глючит :) Таких мест в книге - большое количество, и читать ее составило большое удовольствие :))
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c