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

Вниз

как передается array of const?   Найти похожие ветки 

 
Дмитрий С ©   (2013-01-26 03:33) [0]

В модуле libcurl в FP есть такое определение:

function curl_easy_setopt(curl:PCURL; option:CURLoption; args:array of const):CURLcode;cdecl;external External_library name "curl_easy_setopt";

Я так понимаю это написано, чтобы не писать несколько overload версий функции.
Прокомментируйте пожалуйста: как это "съест" явно СИшный libcurl? Приемлемо ли так писать?


 
Дмитрий С ©   (2013-01-26 03:38) [1]

В h файле такое определение:
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);


 
MBo ©   (2013-01-26 07:39) [2]

С-шная функция с переменным числом параметров (как в [1]) в Delphi объявляется с директивой varargs
args:array of const в Дельфи c этим делом не совместим, на самом деле это массив вариантных записей. Как в FP - не знаю.


 
MBo ©   (2013-01-26 07:44) [3]

По открытым массивам см. справку и
http://rvelthuis.de/articles/articles-openarr.html

А вот в FP, как показало трехсекундное гугление, сочетание cdecl с массивом const как раз соответствует С-шному переменному числу параметров.
http://www.freepascal.org/docs-html/ref/refsu60.html


 
DevilDevil ©   (2013-01-26 09:35) [4]

> MBo ©   (26.01.13 07:44) [3]

Дельфийский параметр - это TVarRec
а как выглядит сишный ?


 
Dimka Maslov ©   (2013-01-26 13:13) [5]

Data: array of const эквивалентно
Ptr: PVarRec; Cnt: Cardinal

в маздайном си эквивалента, скорее всего нет, а абракадабрском - есть. И наверняка в справке написано, как бы плоха она не была.


 
Дмитрий С ©   (2013-01-26 14:27) [6]


> А вот в FP, как показало трехсекундное гугление, сочетание
> cdecl с массивом const как раз соответствует С-шному переменному
> числу параметров.

Спасибо.
КАк ни странно, но погуглить в голову мне не пришло, и это при том что при переходе на FP с delphi гугл требуется каждые 10 минут.



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
15-1358945710
{ dmitry }
2013-01-23 16:55
2013.06.02
защитить приложение от клонов


15-1359311215
Jimmy
2013-01-27 22:26
2013.06.02
Оценочные функции игр на доске


15-1358177509
ES
2013-01-14 19:31
2013.06.02
Работа с внешним консольным приложением


15-1358926991
Потапыч
2013-01-23 11:43
2013.06.02
Как программно отключить UAC?


15-1358278949
masha
2013-01-15 23:42
2013.06.02
беговые лыжи