powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поясните за DLL :)
44 сообщений из 44, показаны все 2 страниц
Поясните за DLL :)
    #39723555
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
7привет))

Хочу понять принцип создания процедуры длл.
Мне не понятно, где именно нужно объявлять переменные в длл. В самой строчке Procedure, или же в var...
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
library BKF;

{  }

uses
  SysUtils,
  Classes, superobject, IdMultipartFormData, IdHTTP, Dialogs;

{$R *.res}


 procedure UPLOAD_VK(FilePath,VK_SERVER,VK_PHOTOS_LIST,VK_AID,VK_HASH:string; TS: TStringList;) stdcall; external 'BKF.dll'
  BEGIN
       if ID_ALBUM <> '' then
   begin
     {----------------------------------------ЗАГРУЗКА НА СЕРВЕР ВК---------------------------------}

     {------------------------------------ПОЛУЧАЕМ UPLOAD_URL..--------------------------------------------------------}
      Form1.SMEMO1.Clear;
        Response := send('GET','https://api.vk.com/method/photos.getUploadServer?album_id='+ ID_ALBUM  +'&'+token+'&v=5.87');
       Form1.sMemo1.Text := MyUtf8ToAnsi(Response);
       UPLOAD_URL :=  SO(Form1.sMemo1.Text).O['response'].S['upload_url'];
     {-----------------------------------------------------------------------------------------------------------------}


      {------------------------------------Multipartformdata---------------------------------------------}
      FormData := TIdMultiPartFormDataStream.Create;

      FormData.AddFile('file1',  Unit1.DEF_PATH_VK  , 'image/jpeg' );
      RESPONSE:= IDHTTP1.Post(UPLOAD_URL, FORMDATA);
      Form1.SMEMO1.Text := RESPONSE;
      FormData.Free;

       VK_SERVER := SO(Form1.smemo1.text).S['server'];
       VK_PHOTOS_LIST := SO(Form1.smemo1.text).S['photos_list'];
       VK_AID := SO(Form1.smemo1.text).S['aid'];
       VK_HASH := SO(Form1.smemo1.text).S['hash'];
     {-----------------------------------------------------------------------------------------------------------------}


        Form1.smemo1.Clear;
          Response := send('GET','https://api.vk.com/method/photos.save?album_id='+ ID_ALBUM +'&server=' +
          VK_SERVER + '&photos_list=' + VK_PHOTOS_LIST +'&hash=' + VK_HASH +'&' + token+'&v=5.87');
       Form1.sMemo1.Text := MyUtf8ToAnsi(Response);

         if FileExists(DEF_PATH_VK) then
      BEGIN
        DeleteFile(DEF_PATH_VK);
      END;

   end else
   BEGIN
     MessageBox(handle, PChar('НЕ ВЫБРАН АЛЬБОМ ДЛЯ ЗАГРУЗКИ В VK!!!'), PChar('СТРАШНЫЙ ERROR (:'), MB_OK + MB_ICONWARNING);
   END;

  END;

begin
end.


Или же мне нужна функция?
Речь о том, что бы в проекте сделать скрин, сохранить его, и вызвать процеду из длл, что бы она загрузила его в вк.
Никогда не работал с dll, обходил их как огонь))))) но для саморазвития должен попробовать!
Смотрел видео на ютубе, но там чисто поверхностно обговаривают... Остаются еще больше вопросов чем было.

В принципе, скриншот "(всегда)" будет лежать по пути "C:/" и удаляться сразу после загрузки на вк.
По этому, как я понимаю, пути к файлу передавать в библу не нужно. А только вызвать процедуру в нужный момент.
PS на form1.smemo1.text не обращайте внимания, я пытаюсь заменить её на TS: TStringList. Осталось узнать где это объявить)
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723564
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,
Tech N9neХочу понять принцип создания процедуры длл.
скачай книжку, там есть глава про dll и их написание
https://www.for-stydents.ru/informatika/delphi/uchebniki/delphi-5-rukovodstvo-razrabotchika-tom-1-osnovnye-metody-i-tehnologii-programmirovaniya.html
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723567
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neНикогда не работал с dll, обходил их как огонь))))) но для саморазвития должен попробовать!
Лучше забей.

Если таки не хочешь забить - начни с функции в dll попроще, например, которая складывает два числа.

Второй этап (после успешного первого) - сделай работающую функцию в dll, которая сохраняет результат этого сложения в файл, имя которого передается как параметр функции.

Последние 3 совета:
1. Ставь навсякий между "begin end." IsMultiThread := True;
2. Не используй в параметрах экспортируемых функций автоматические и сложные типы (String, дин. массивы, классы);
3. Во всех своих dll делай 2 доп. функции: Initialize и Finalize.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723592
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne7привет))

Хочу понять принцип создания процедуры длл.
Мне не понятно, где именно нужно объявлять переменные в длл. В самой строчке Procedure, или же в var...
Код: pascal
1.
2.
3.
library BKF;

{  }




Сленг радует :) код соответвует
Имеет смысл прочесть то, что в { } - там не глупости.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723593
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62Tech N9ne,
Tech N9neХочу понять принцип создания процедуры длл.
скачай книжку, там есть глава про dll и их написание
https://www.for-stydents.ru/informatika/delphi/uchebniki/delphi-5-rukovodstvo-razrabotchika-tom-1-osnovnye-metody-i-tehnologii-programmirovaniya.html
Посмотрел, там сразу про функции в библе.

YuRock,
Так как же я сделаю процедуру, если мне не объяснили где именно объявлять переменные, в строчке procedure (......) или же ниже в var?
и если в var, то что писать в самой процедуре?
Составьте пожалуйста мне заголовок процедуры, из моего заголовка. Там все переменные которые юзаются в коде.
Мне непонятен именно этот нюанс. Дальше я пойду пробовать с малых процедур, функций.
Я ведь не многого прошу?)))
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723596
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064Tech N9ne7привет))

Хочу понять принцип создания процедуры длл.
Мне не понятно, где именно нужно объявлять переменные в длл. В самой строчке Procedure, или же в var...
Код: pascal
1.
2.
3.
library BKF;

{  }




Сленг радует :) код соответвует
Имеет смысл прочесть то, что в { } - там не глупости.
Я bad знаю англ)))
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723598
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,

А зачем тебе external 'BKF.dll' в этой же DLL? И где секция export? Ну и string я бы на PChar заменил.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723603
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, там еще TStringList есть. Вообще хорошо.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723606
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И Form. Не взлетит в общем - все через одно место...
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723610
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,

Form1 - это что? Форма из основной программы или созданная в dll?
ЗЫ: хотите понять принцип - начните с простого, как YuRock советовал.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723612
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterО, там еще TStringList есть. Вообще хорошо.
Ну видите, в книгах сразу описывается функции, но не пишут что для чего и как.
Мне нужно пол тонны прочитать, что бы вообще открывать delphi. Или пойти на программиста?
Как мне добыть инфу которая мне нужна, что бы реализовать свои нужды в ближайшее время?
Я понял что делаю что-то не так, почему бы не объяснить, почему нельзя юзать tstringlist, и на что его можно заменить?
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723618
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldmi45Tech N9ne,

Form1 - это что? Форма из основной программы или созданная в dll?
ЗЫ: хотите понять принцип - начните с простого, как YuRock советовал.
это я в своей программе обращаюсь к memo1.
Код естественно вырезан с программы и вставлен в библу.
Задумка была такая, скинуть код в библу, заменить всё с form1.memo на tstringlist.
В самой библе не собираюсь делать формы.
Я повторюсь, как я пойду делать процедуры и функции, если я в принципе не знаю, где объявлять переменные!
В самой строчке PROCEDURE name(................. тут?)
var или тут?
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723623
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЯ bad знаю англ)))

Это нормально для АУЕ, не тот язык учил :)
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723626
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтож ладно, я зайду с другой стороны))
объясните как сделать функцию в библе, что бы в неё, программа передавала 3-4 стринга, и 1 stringlist
на выходе boolean
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723632
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЯ ведь не многого прошу?)))

Ты просишь разжовывать тебе азы. Это много. Очень много.

Tech N9neМне нужно пол тонны прочитать, что бы вообще открывать delphi. Или пойти
на программиста?
Да.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723633
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neТак как же я сделаю процедуру, если мне не объяснили где именно объявлять переменные, в строчке procedure (......) или же ниже в var?
Там же, как и в обычных процедурах в основной программе. Синтаксис процедур для exe и dll не отличаются.

Tech N9neэто я в своей программе обращаюсь к memo1.
Код естественно вырезан с программы и вставлен в библу.
Это не естественно.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723636
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЧтож ладно, я зайду с другой стороны))
объясните как сделать функцию в библе, что бы в неё, программа передавала 3-4 стринга, и 1 stringlist
на выходе boolean

Если кратко - никак. В длл можно предать только числа и указатели ( тоже числа, по сути). Строки, объекты - нельзя.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723638
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockTech N9neТак как же я сделаю процедуру, если мне не объяснили где именно объявлять переменные, в строчке procedure (......) или же ниже в var?
Там же, как и в обычных процедурах в основной программе. Синтаксис процедур для exe и dll не отличаются.

Tech N9neэто я в своей программе обращаюсь к memo1.
Код естественно вырезан с программы и вставлен в библу.
Это не естественно.
Спасибо.
В dll во что мне загрузить ответ от сервера вк ?
На что заменить tstringlist?
Мне нужно отправить запрос, распарсить, отправить, опять парсить и тд.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723639
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neВ dll во что мне загрузить ответ от сервера вк ?В память.
Tech N9neНа что заменить tstringlist?На указатель на память.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723640
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, что лучше - тот упоротый анонимус или вот такие топикстартеры.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723642
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockTech N9neВ dll во что мне загрузить ответ от сервера вк ?В память.
Tech N9neНа что заменить tstringlist?На указатель на память.
Спасибо!
И так же спасибо, что отличаешься от остальных тем, что не просто пишешь посты.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723647
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КотовасияНепонятно, что лучше - тот упоротый анонимус или вот такие топикстартеры.
Я думал тут можно задать вопрос, получить вменяемый ответ.
Я видать ошибся адресом? Тут хаха с тебя давят. Указывают на твои ошибки, но не говорят как она решается.
Лучше конечно такие как я, топикстартеры. Ведь можно поржать не только с нас, но еще и с кода.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723650
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЯ думал тут можно задать вопрос, получить вменяемый ответ.


Не люблю "крылатые" фразы, но здесь уместно: "правильно заданный вопрос содержит половину ответа".

Дорогой ТС, учи английский, а не феню!

Зачем длл понадобилась? Для выноса кода в длл нужна достаточно веская причина. Просто взять произвольную процедуру и вынести ее в длл - глупость.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723651
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЧтож ладно, я зайду с другой стороны))
объясните как сделать функцию в библе, что бы в неё, программа передавала 3-4 стринга, и 1 stringlist
на выходе boolean
Используй интерфейсы.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723658
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо string -> widestring, вместо tstringlist -> IStringList(который может реализовать на базе TWideStringList)
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723660
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЯ видать ошибся адресом? Тут хаха с тебя давят. Указывают на твои ошибки, но не говорят
как она решается.

Да, ты явно ошибся адресом. Все ошибки в программировании решаются одинаково: приведением
кода в соответствие с документацией и логикой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723663
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В твоем коде все прекрасно и погоны и какарда и исподня @ Только работать не будет.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723664
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064Tech N9neЯ думал тут можно задать вопрос, получить вменяемый ответ.


Не люблю "крылатые" фразы, но здесь уместно: "правильно заданный вопрос содержит половину ответа".

Дорогой ТС, учи английский, а не феню!

Зачем длл понадобилась? Для выноса кода в длл нужна достаточно веская причина. Просто взять произвольную процедуру и вынести ее в длл - глупость.
Решил слезть с delphi7 на Tokyo последнюю.
В Tokyo как я понял не работает superobject.
Решил попробовать написать длл на 7, и юзать её на токио.
ДА, я знаю про Json в токио!
Мне хочется ознакомится с dll
Если я выучу англ, прочитаю тонну книг, зачем мне вы и ваш форум?
Не хочу наколять обстановку, можете считать меня ауе пацанчиком на кортах.
Спасибо и до свидания.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723670
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014tstringlist -> IStringListIStrings есть. И GetOleStrings
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723671
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neЕсли я выучу англ, прочитаю тонну книг
Тонна книг не нужна абсолютно, даже килограмм не нужен, даже 100 грамм совсем не обязательно. На 100% достаточно (и необходимо) - документации. А вот её без знания английского (на уровне технических терминов и азов) не осилить, увы.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723672
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9neзачем мне вы и ваш форум?Для троллинга, понятное дело
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723677
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,
Там на вариантах. Но тоже можно использовать.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723717
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,

Смотри:

В процедуру отдаешь только числа и PChar вместо string. Никаких Form,Memo,StringList и прочего.
Процедуру - помешает в exports (иначе основной модуль ее не увидит, не сможет использовать)
Соглашение о вызове - stdcall.

Если тебе уж очень нужен StringList - создай его внутри процедуры, поработай с ним, уничтожь на выходе.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723719
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
library TestLibrary;

uses
  SysUtils,
  Classes,
  Dialogs,IdHTTP,IdMultipartFormData,superobject, lib, httpsend, ssl_openssl;


 function UPLOAD_VK(TOKEN, USERID, ALBUMID, SERVER, AID, PHOTO_LIST, HASH: WideString ): Boolean;  export;
 var IDHTTP1:TIdHTTP; DATA: TIdMultiPartFormDataStream;   MS:TMemoryStream;  RESPONSE,UPLOAD_URL:WideString;

begin

 MS := TMemoryStream.Create;
 RESPONSE :=  send('GET', 'https://api.vk.com/method/photos.getUploadServer?album_id='+ ALBUMID  +'&'+TOKEN+'&v=5.87' );
 UPLOAD_URL := SO(MS).O['response'].S['upload_url']; // ТУТ ОШИБКА SUPEROBJECT  - There is no overloaded version of 'SO' that can be called with these arguments

 MS.FREE;

end;


exports UPLOAD_VK;

begin
end.


Подскажите, правильно ли я делаю?
И почему superobject, SO(ms) ошибка?
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723720
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_ziv-2014tstringlist -> IStringListIStrings есть. И GetOleStrings

На данном этапе я бы не советовал лезть к интерфейсам. Там есть нюансы.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723722
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
library TestLibrary;

uses
  SysUtils,
  Classes,
  Dialogs,IdHTTP,IdMultipartFormData,superobject, lib, httpsend, ssl_openssl;


 function UPLOAD_VK(TOKEN, USERID, ALBUMID, SERVER, AID, PHOTO_LIST, HASH: WideString ): Boolean;  export;
 var IDHTTP1:TIdHTTP; DATA: TIdMultiPartFormDataStream;   MS:TMemoryStream;  RESPONSE,UPLOAD_URL:WideString;

begin

 MS := TMemoryStream.Create;
 RESPONSE :=  send('GET', 'https://api.vk.com/method/photos.getUploadServer?album_id='+ ALBUMID  +'&'+TOKEN+'&v=5.87' );
 UPLOAD_URL := SO(MS).O['response'].S['upload_url']; // ТУТ ОШИБКА SUPEROBJECT  - There is no overloaded version of 'SO' that can be called with these arguments

 MS.FREE;

end;


exports UPLOAD_VK;

begin
end.


Подскажите, правильно ли я делаю?
И почему superobject, SO(ms) ошибка?

О, совсем другое дело!!! Помести свой RESPONSE в тут же созданный StringList и отдай его на вход SO. Кстати, а сам SO - он откуда берется (я с SuperObject не работал, поэтому спрашиваю) - это что-то глобально инициализируемое?
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723724
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterО, совсем другое дело!!! Помести свой RESPONSE в тут же созданный StringList и отдай его на вход SO. Кстати, а сам SO - он откуда берется (я с SuperObject не работал, поэтому спрашиваю) - это что-то глобально инициализируемое?
упс, мне нужно не ms туда вставлять, а response. Скомпилилось вроде, попробую дальше писать.


Насчет superobject, в обычнм проекте просто в uses добовляю, и пишу в коде SO(), без create, free; - вроде работает, думаю делаю правильно. На примерах по карайней мере так.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723744
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал, скомпилил, в программе вызываю функцию и получаю ошибку.
Что я сделал не так?(



Программа:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
   function UPLOAD_VK(TOKEN, USERID, ALBUMID:WideString ): Boolean;  external 'TestLibrary.dll'
implementation
{$R *.dfm}
procedure TForm1.sSpeedButton1Click(Sender: TObject);
begin
UPLOAD_VK(sEdit1.Text, sEdit2.Text,sEdit3.Text);  // тут токен, юзер айди и ID альбома
end;




DLL:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
library TestLibrary;

uses
  SysUtils,
  Classes,
  Dialogs,IdHTTP,IdMultipartFormData,superobject, lib, httpsend, ssl_openssl;


 function UPLOAD_VK(TOKEN, USERID, ALBUMID:WideString ): Boolean;  export;
 var
 IDHTTP1:TIdHTTP;
 DATA: TIdMultiPartFormDataStream;
 RESPONSE,UPLOAD_URL,DEF_PATH_VK, SERVER, AID, PHOTO_LIST, HASH: WideString;

begin

  DEF_PATH_VK := 'C:/VK.JPG';
 RESPONSE :=  send('GET', 'https://api.vk.com/method/photos.getUploadServer?album_id='+ ALBUMID  +'&'+TOKEN+'&v=5.87' );
 UPLOAD_URL := SO(RESPONSE).O['response'].S['upload_url'];  
 DATA :=  TIdMultiPartFormDataStream.Create;
 DATA.AddFile('file' ,  DEF_PATH_VK  , 'image/jpeg' ) ;

 IDHTTP1 := TIdHTTP.Create(nil);
 IDHTTP1.HandleRedirects := True;
 RESPONSE :=  IDHTTP1.Post(UPLOAD_URL,DATA);
 DATA.Free;
 IDHTTP1.Free;
  SERVER := SO(RESPONSE).S['server'];
  PHOTO_LIST := SO(RESPONSE).S['photos_list'];
  AID := SO(RESPONSE).S['aid'];
  HASH := SO(RESPONSE).S['hash'];
  RESPONSE := send('GET','https://api.vk.com/method/photos.save?album_id='+ ALBUMID +'&server=' +
  SERVER + '&photos_list=' + PHOTO_LIST +'&hash=' + HASH +'&' + token+'&v=5.87');
end;


exports UPLOAD_VK;

begin
end.

...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723747
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините пж)) передавал не правильные токен или ид
сейчас перепроверил - всё ок, всё грузится.

спасибо, с горем пополам, немного понял как работать с библой.
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723794
Фотография Tech N9ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните пожалуйста еще кое-что))
как мне получить результат из длл в программу? я весь день в дельфи, каша в голове..
вот функция в длл
Код: pascal
1.
2.
3.
4.
5.
6.
7.
function VK_CREATE_ALBUM( TOKEN, USERID, ALBUM_NAME, ALBUM_DESCRIPTION, ALBUM_VIEW,ALBUM_COMMENT:WideString ): WideString;   
var RESPONSE:WideString;
BEGIN
Response := send('GET','https://api.vk.com/method/photos.createAlbum?title='+ALBUM_NAME+'&'
+'description='+ALBUM_DESCRIPTION+'&privacy_view='+ALBUM_VIEW+'&privacy_comment='+
ALBUM_COMMENT+'&'  +UserID +'&' + token+'&v=5.87');
Result := SO(RESPONSE).O['response'].S['id']; // РЕЗУЛЬТАТ НУЖНО ПОЛУЧИТЬ В ПРОГРАММУ
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723849
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,
Лучше так
Код: pascal
1.
function VK_CREATE_ALBUM( TOKEN, USERID, ALBUM_NAME, ALBUM_DESCRIPTION, ALBUM_VIEW,ALBUM_COMMENT:WideString; var Res : WideString ): Boolean;
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723850
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tech N9ne,
В результате функции лучше передавать целочисленные типы. Указатели и прочее лучше передавать через ссылку в переменной (оператор var).
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723925
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014Указатели и прочее лучше передавать через ссылку в переменной (оператор var).Именно так они компилятором и передаются
...
Рейтинг: 0 / 0
Поясните за DLL :)
    #39723961
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как приятно зайти и почитать древний эпос Дельфийцев, передаваемый из уст в уста...
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поясните за DLL :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]