Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Как приравнять тип из Си к типу Delphi?   Найти похожие ветки 

 
Разведка   (2012-06-12 14:13) [0]

В "С" структуре есть тип 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:21) [1]

Есть подозрение, что вместо PChar надо бы PAnsiChar, иначе в новых Delphi получится указатель на двухбайтовые символы, а Ваша сишная реализация, видимо, работает с однобайтовыми. Для хеша я бы в зависимости от того, строка там, или массив байтов, выбрал соответственно PAnsiChar или PByte.

А вообще указатель - он и есть указатель.


 
Разведка   (2012-06-12 14:28) [2]


> ProgRAMmer Dimonych ©   (12.06.12 14:21) [1]


Может тогда просто на Pointer заменить будет еще более универсальней


 
ProgRAMmer Dimonych ©   (2012-06-12 14:34) [3]

> [2] Разведка   (12.06.12 14:28)

Можно. Но тогда придётся в коде, который эти поля будет использовать, прописывать каждый раз приведение типов: вроде как читаемость тоже не сильно повышает.



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.071 c
2-1328784120
ds
2012-02-09 14:42
2013.03.22
DbGrid программная очистка ячейки


2-1339168542
Виктор1985
2012-06-08 19:15
2013.03.22
Как скомпилировать DCU из PAS файла


2-1339141857
Александр_2012
2012-06-08 11:50
2013.03.22
Об управлении монитором


2-1347507525
turbo
2012-09-13 07:38
2013.03.22
Как перевести дату в нормальный формат?


15-1347609677
Dmitry87
2012-09-14 12:01
2013.03.22
Запуск программы от имени текущего пользователя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский