powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поясните за DLL :)
19 сообщений из 44, страница 2 из 2
Поясните за 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
19 сообщений из 44, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поясните за DLL :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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