Главная страница
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
2-1351765196
Kolya
2012-11-01 14:19
2013.06.02
Учусь


2-1351589231
Сергей
2012-10-30 13:27
2013.06.02
Функция CreateDIBSection Не создается палитра???


15-1359516511
Кто б сомневался
2013-01-30 07:28
2013.06.02
Как запускать игру)


15-1359145803
Юрий
2013-01-26 00:30
2013.06.02
С днем рождения ! 26 января 2013 суббота


15-1358877111
Дмитрий С
2013-01-22 21:51
2013.06.02
Почтовый ретранслятор.