Пытаетесь Вербой овладеть?
- точно , пытаюсь.

С Указателями вообще морока, для меня.
Как то не было нужды с ними работать, не стал вникать. А тут, смотрю, как баран на новые ворота, и не могу в голове уложить - что и к чему.

С одиночным указателем все вроде бы понятно, поправьте , если не прав:
указатель на переменную либо тип данных - это тоже переменная, но хранить она адрес.
Что тогда хранит переменная указатель на указатель типа данных?
Вообще-то, двойной указатель в Си - это массив, т.е. список указателей. В вашем случае, первый указатель - это указатель на список из указателей.
как выглядит аналогичная конструкция в паскале?
Ок вот как в оригинале выглядит функция от разработчика с описанием:
Получение списка получателей зашифрованного файла
Для получения списка получателей (абонентов, которые могут расшифровать данный закрытый файл), служит функция GetCryptKeysF(wbotho). При формировании списка получателей зашифрованного файла расшифрование и проверка правильности этого файла не производятся.
Функция GetCryptKeysF имеет прототип:
- Код: Выделить всё
T16bit WINAPI GetCryptKeysF (char *file_name,
P16bit abonents,
P16bit *user_list,
char *ser);
Функция имеет параметры:
(i) file_name — указатель на строку полного пути к зашифрованному файлу;
(o) abonents — указатель на переменную, в которую возвращается число получателей;
(o) user_list — список получателей файла file_name, который имеет такую же структуру, как и в функции EnCryptFile, т. е. представлен строкой элементов, имеющих тип unsigned short, и оканчивающийся нулем (0).
Внимание. Память под этот массив отводится внутри функции GetCryptKeysF и должна быть освобождена функцией FreeMemory (см. п. 8.12), как только user_list обработан.
(o) ser — указатель на строку, куда возвращается номер серии (7 байт) ключей отправителей.
Пример использования функции GetCryptKeysF:
- Код: Выделить всё
char ser[7];
error_code = GetCryptKeysF("C:\\TEST.TST", abonents, user_list, ser);
for(i = 0; i < *abonents; i++) printf("%u\n", *user_list[i]);
FreeMemory(user_list);
Вот так в wboth.pas который нарыл в инете:
- Код: Выделить всё
function GetCryptKeysF(file_name:LPSTR; abonents:PWORD;user_list:PWORD;ser:LPSTR):WORD;
stdcall; external cDLLFn name 'GetCryptKeysF';
как правильно вызвать данную функцию?