![]() |
Перевести из С++ в Delphi
Помогите перевести следующие строки кода из С++ в Delphi. То есть у меня возникла проблема с типами данных и некоторыми функциями. Заранее спасибо.
Код:
void GetHashStr(wchar_t* Password,char *HashStr)Код:
CryptHashData(hHash, (unsigned char*)Password, (wcslen(Password)+1)*2);Код:
char TmpBuf[128];Код:
wsprintf(TmpBuf,”%s%2.2X”, HashStr, c); // c это unsigned char |
Цитата:
Код:
void GetHashStr(wchar_t* Password,char *HashStr)PHP код:
Код:
CryptHashData(hHash, (unsigned char*)Password, (wcslen(Password)+1)*2);PHP код:
Код:
char TmpBuf[128];PHP код:
Код:
wsprintf(TmpBuf,”%s%2.2X”, HashStr, c); // c это unsigned charPHP код:
|
Цитата:
Если все получиться - выложу тут готовый вариант. Password: PWideChar; А далее ты пишешь var Password: string; Password берется из параметра первой процедуры. Все остальные функции вызываются в ней. |
Последнее дословно, наверное будет так:
PHP код:
str:=str+Jord(TmpBuf[i]); P.s. Спасибо SLESH дал в свое время мне эти функции :) |
1) void GetHashStr(wchar_t* Password, char *HashStr) - это
Procedure GetHashStr(Password:PWideChar; HashStr:Pchar) // про * незабываем ) 2) CryptHashData(hHash, (unsigned char*)Password, (wcslen(Password)+1)*2); Тут считается кол-во символов расширенной строки + символ конца строки (0x00) и умножается на 2 чтобы узнать длинну в байтах. По этому более корректно будет так: CryptHashData(hHash, PByte(Password), (length(Password)+1)*2, 0) |
JnK, slesh - спасибо, получилось! Ваши подсказки и метод научного втыка рулят.
|
| Время: 13:05 |