![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как приравнять тип из Си к типу Delphi?
Разведка © (2012-06-12 14:13:00)В "С" структуре есть тип unsigned char* szName; будет ли тип делфи эквивалентен szName: PChar;
Вот структура на "С", а ниже структура Делфи
Полностью ли совпадают типы?
typedef struct {
unsigned char* pHash; // Address of buffer for saving hash
unsigned char* szPassword; // Password
int nPasswordLen; // Password length
unsigned char* szSalt; // Salt
int nSaltLen; // Salt length
unsigned char* szName; // User name
int nNameLen; // User name length
DWORD dwFlags; // Flags
} HASHINFO;
Type
PHashInfo = ^THashInfo;
THashInfo = Record
pHash : PChar; // Адрес буфера для сохранения сгенерированного хэша
szPassword : PChar; // Пароль
nPasswordLen : Integer; // Длина пароля
szSalt : PChar; // Соль
nSaltLen : Integer; // Длина соли
szName : PChar; // Имя пользователя
nNameLen : Integer; // Длина имени пользователя
dwFlags : DWORD; // Флаги
End;
ProgRAMmer Dimonych (2012-06-12 14:34:00) [1]> [2] Разведка (12.06.12 14:28)
Можно. Но тогда придётся в коде, который эти поля будет использовать, прописывать каждый раз приведение типов: вроде как читаемость тоже не сильно повышает.
Разведка (2012-06-12 14:28:00) [2]
> ProgRAMmer Dimonych © (12.06.12 14:21) [1]
Может тогда просто на Pointer заменить будет еще более универсальней
ProgRAMmer Dimonych (2012-06-12 14:21:00) [3]Есть подозрение, что вместо PChar надо бы PAnsiChar, иначе в новых Delphi получится указатель на двухбайтовые символы, а Ваша сишная реализация, видимо, работает с однобайтовыми. Для хеша я бы в зависимости от того, строка там, или массив байтов, выбрал соответственно PAnsiChar или PByte.
А вообще указатель - он и есть указатель.