Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.06.02;
Скачать: [xml.tar.bz2];

Вниз

как передается 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
2-1351765196
Kolya
2012-11-01 14:19
2013.06.02
Учусь


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


15-1359013803
Студент
2013-01-24 11:50
2013.06.02
Как подключать HDD?


15-1359391746
Медвежонок Пятачок
2013-01-28 20:49
2013.06.02
Формат пакета TClientDataSet D7 и XE2


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский