![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразвание типов [D7, WinXP]
UnknownC0der © (2007-06-04 17:18:00)Всем привет!
В общем хукаю я функцию:
CryptGenRandom(hProv: Hwnd; dwLen: DWORD; pbBuffer: PBYTE): BOOL;
Вопрос такой:
Как преобразовать pbBuffer в число, например в Dword и обратно?
UnknownC0der (2007-06-04 21:50:00) [1]Спасибо большое, разобрался!
Eraser (2007-06-04 21:19:00) [2]> [7] UnknownC0der (04.06.07 21:14)
да ничего и не делать.
значение pbBuffer тогда можно увидеть так
showmessage(inttostr(PDWORD(pbBuffer)^));
UnknownC0der (2007-06-04 21:14:00) [3]Посмотрел... dwLen там всегда - 4...
Что с этим мона сделать?
Eraser (2007-06-04 20:07:00) [4]> [5] UnknownC0der (04.06.07 19:50)
все зависит от параметра dwLen. Допустим если передали туда 4, то pbBuffer будет указывать на 4-байтный буффер, содержимое которого можно представить в виде числа примерно так PDWORD(pbBuffer)^.
UnknownC0der (2007-06-04 19:50:00) [5]Сформулирую вопрос по другому:
Как можно посмотреть что 'нагенировала' программа и изменить это?
P.S. Она генерирует 3 значное число с помощью это функции...
Eraser (2007-06-04 19:40:00) [6]> [3] UnknownC0der (04.06.07 19:22)
> Я хочу получить то, что эта функция сгенерирует в этой проге
> в виде числа...
ввиде числа не получится, т.к. размер буффера может быть (и будет) больше 64 бит.
UnknownC0der (2007-06-04 19:22:00) [7]Нет, смысл в том что есть прога, которая использует функцию
CryptGenRandom(hProv: Hwnd; dwLen: DWORD; pbBuffer: PBYTE): BOOL;
Я хочу получить то, что эта функция сгенерирует в этой проге в виде числа... Вот собственно в чем и вопрос...
Eraser (2007-06-04 18:41:00) [8]В данном случае PBYTE это просто условно, с таким же успехом можно было написать PChar иди PDWORD, во всех случаях переменная 4х байтовая.
Belorus (2007-06-04 18:38:00) [9]Pbyte в DWORD :) Ну только, как бы это сказать.... частично. Ибо Byte - однобайтовый тип, а DWORD - четырех.
var X : DWord;
begin
X:=Byte(pbBuffer);
end;