![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перевод PByte -> PChar [D7, WinXP]
Мой ник © (2007-11-19 20:12:00)Всем привет!
В общем есть переменная pbData: PBYTE, подскажите пожалуйста как преобразовать ее в PChar.
В таком виде:
MessageBox(0, PChar(pbData), '', 0);
Не получилось :(
Мой ник (2007-11-19 20:52:00) [1]Все, разобрался...
pbData
[in,out] Указатель на буфер, содержащий данные, которые необходимо зашифровать и, опционально, захэшировать.
Размер буфера, в байтах, передается в параметре dwBufLen.
Размер шифруемых данных передается в параметре pdwDataLen.
В качестве значения данного параметра может быть передан NULL. В этом случае в параметре pdwDataLen возвращается размер памяти необходимый для записи шифрованных данных. Шифрованные данные помещаются в этот же буфер (открытые данные перезаписываются).
Мой ник (2007-11-19 20:30:00) [2]В общем я перехватываю функцию
function CPEncrypt(
hProv: HCRYPTPROV;
hKey: HCRYPTKEY;
hHash: HCRYPTHASH;
Final: BOOL;
dwFlags: DWORD;
pbData: PBYTE;
pdwDataLen: PDWORD;
dwBufLen: DWORD
): Bool; stdcall;
из rsaenh.dll.
Код реализующий перехват 100% верный.
В обработчике перехватываемой функции вызываю настоящуюю функцию и показываю содержимое ее переменных:
begin
Result := CPEncrypt(
hProv,
hKey,
hHash,
Final,
dwFlags,
pbData,
pdwDataLen,
dwBufLen
);
MessageBox(0, PChar(pbData), '', 0);
end;
Anatoly Podgoretsky (2007-11-19 20:23:00) [3]> Мой ник (19.11.2007 20:20:02) [2]
Так может в буффере и есть мусор, ведь приведения мало, надо что бы и данные соответствовали PChar.
Приведи содержимое буфера.
Мой ник (2007-11-19 20:20:00) [4]>А что получилось.
Там мусор вместо строки :(
Anatoly Podgoretsky (2007-11-19 20:15:00) [5]> Мой ник (19.11.2007 20:12:00) [0]
А что получилось.