проблема с установкой curlpas на Linux

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

проблема с установкой curlpas на Linux

Сообщение nameloss » 19.02.2009 00:03:37

никак не могу скомпилировать curlpas.
Последовал рекомендации из поста http://freepascal.ru/forum/viewtopic.php?f=6&t=3665&p=26929&hilit=curl#p26903
Но не знаю что делать дальше, консольный вывод компиляции проблемного модуля такой:
Код: Выделить всё
ppc386 -Sh curlobj.pas
Free Pascal Compiler version 2.2.2 [2008/11/01] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for i386
Compiling curlobj.pas
ocurlcb2.inc(31,69) Error: Wrong type "TCurl" in array constructor
ocurlcb2.inc(94,65) Error: Wrong type "TCurl" in array constructor
ocurlini.inc(127,62) Error: Wrong type "TCurl" in array constructor
curlobj.pas(222) Fatal: There were 3 errors compiling module, stopping
Fatal: Compilation aborted
nameloss
незнакомец
 
Сообщения: 3
Зарегистрирован: 18.02.2009 23:52:23

Re: проблема с установкой curlpas на Linux

Сообщение B4rr4cuda » 20.02.2009 14:06:13

Дело в том, что последняя версия CurlPas аж 2005-го года. Видимо требуется серьезная работа напильником.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: проблема с установкой curlpas на Linux

Сообщение nameloss » 20.02.2009 21:48:41

Точно. Я уже поискал, CurlPas перестаёт компилироваться с 2.0.4. Видно, ничего не поделаешь.
Мне, в принципе, нужна только своя реализация прогресса, но я не могу понять, как должен выглядеть рабочий код. Помогите хотя бы с этим.
nameloss
незнакомец
 
Сообщения: 3
Зарегистрирован: 18.02.2009 23:52:23

Re: проблема с установкой curlpas на Linux

Сообщение B4rr4cuda » 20.02.2009 23:54:39

То что закачали умножаем на сто и делим на полный размер, прогрессбару присваиваем полученное значение и не забываем Application.ProcessMessages;
Или я что-то недопонял?
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: проблема с установкой curlpas на Linux

Сообщение nameloss » 21.02.2009 13:43:26

B4rr4cuda
Да не, там есть возможность задать функцию закачки. Проблема решена(все равно спасибо за попытку помочь), там будет примерно такой код:
Код: Выделить всё
{$mode objfpc}
{$H+}
program teststream;

uses classes,libcurl,unixtype;

type Ptextfile= ^textfile;

Function DoWrite(Ptr : Pointer; Size : size_t; nmemb: size_t; Data : Pointer) : size_t;cdecl;

begin
  Result:=TStream(Data).Write(Ptr^,Size*nmemb);
end;

Function DoProgress(text: Ptextfile; dltotal:double; dlnow:double; ultotal:double; ulnow:double):longint;cdecl;
Begin
writeln(dltotal,'        ',dlnow);
End;

Var
  f : TFileStream;
  test:textfile;
  URL : Pchar = 'http://www.freepascal.org';
  hCurl : pCurl;

begin
  F:=TFileStream.Create('fpc.html',fmCreate);
  assign(test,'test.txt');
  rewrite(test);
  Try
    hCurl:= curl_easy_init;
    if Assigned(hCurl) then
      begin
      curl_easy_setopt(hCurl,CURLOPT_VERBOSE, [True]);
      curl_easy_setopt(hCurl,CURLOPT_URL,[URL]);
      curl_easy_setopt(hCurl,CURLOPT_WRITEFUNCTION,[@DoWrite]);
      curl_easy_setopt(hCurl,CURLOPT_WRITEDATA,[Pointer(F)]);
      curl_easy_setopt(hCurl,CURLOPT_NOPROGRESS,[0]);
      curl_easy_setopt(hCurl,CURLOPT_PROGRESSFUNCTION,[@DoProgress]);
      curl_easy_setopt(hCurl,CURLOPT_PROGRESSDATA,[@test]);
      curl_easy_perform(hCurl);
      curl_easy_cleanup(hCurl);
      end;
  Finally
    F.Free;
    close(test);
  end;
end.

Вместо Ptextfile может выступать любой поинтер, этот осталься от варианта записи лога в файл. Только раньше этот код ничего на экран не выводил, но после переустановки fpc все запахало. До сих пор не понимаю почему.
nameloss
незнакомец
 
Сообщения: 3
Зарегистрирован: 18.02.2009 23:52:23


Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

Рейтинг@Mail.ru