Главная страница
    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
15-1358837720
ПЛОВ
2013-01-22 10:55
2013.06.02
Как правильно работать с таким потоком?


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


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


15-1358765049
vxxv
2013-01-21 14:44
2013.06.02
Создать определенный класс.


15-1359173042
Студент
2013-01-26 08:04
2013.06.02
Сломался USB-Разъём.





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