Главная страница
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.01 c
2-1351266946
FIL-23
2012-10-26 19:55
2013.06.02
Как обновить данные в DBGrid


6-1222503093
Cryxalis
2008-09-27 12:11
2013.06.02
как заставить INDY юзать уже занятый порт?


15-1358837752
Дмитрий С
2013-01-22 10:55
2013.06.02
Зачем delphi свой менеджер памяти?


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


2-1351951397
Тимофеич
2012-11-03 18:03
2013.06.02
Проблема сравнения дат