Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Проблема с DLL


Автор: SanLLIer 13.1.2011, 12:36
Собственно сабж: решил попробовать DLL, ибо никогда не использовал. Далеко не уйдя, столкнулся с проблемой... почему этот код не работает?
Код

uses  
  SysUtils, idHTTP, Classes;

var
  data: string;

...
data:=HTTP.Get('some data...');     //ошибка
...


На этой строчке валится с ошибкой: Access violation at address 002BE in module 'XXX.dll'. Read of address 00000000.

Автор: bems 13.1.2011, 12:42
Потому что то, что ты называешь HTTP не создано

Автор: SanLLIer 13.1.2011, 12:46
Код

uses  
  SysUtils, idHTTP, Classes;
var
  data: string;
  HTTP: TidHTTP;
...
data:=HTTP.Get('some data...');     //ошибка
...


Пропустил строчку...

Автор: bems 13.1.2011, 12:47
Это лишь объявление, объект все еще не создан

Автор: SanLLIer 13.1.2011, 12:48
Код

HTTP:=TidHTTP.Create;

?

Автор: bems 13.1.2011, 12:49
Бинго! Только это компонент, значит у конструктора есть параметр

Автор: SanLLIer 13.1.2011, 12:50
Спасибо. что-то я ступил О_о

Автор: morpheyushka 13.1.2011, 13:03
Делай так:
Код

uses  
  SysUtils, idHTTP, Classes;
var
  data: string;
  HTTP: TidHTTP;
...
HTTP := TIdHTTP.Create(nil);
try
  data:=HTTP.Get('some data...');   
finally
  HTTP.Free;
end;
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)