Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с IternetCrackURL (wininet) [D7, WinXP]


Igor_thief ©   (2006-11-03 16:40:00) 

Почему приведенный ниже код работает правильно,
procedure TForm1.Button1Click(Sender: TObject);
var
 aURLC: TURLComponents;
begin
 FillChar(aURLC, SizeOf(TURLComponents), 0);
 with aURLC do
 begin
   lpszScheme := PChar(Edit1.Text);
   dwSchemeLength := INTERNET_MAX_SCHEME_LENGTH;
   lpszUrlPath := PChar(Edit1.Text);
   dwUrlPathLength := INTERNET_MAX_PATH_LENGTH;
   lpszHostName := nil;
   dwHostNameLength := INTERNET_MAX_HOST_NAME_LENGTH;
   lpszUserName := nil;
   dwUserNameLength := INTERNET_MAX_USER_NAME_LENGTH;
   lpszPassword := nil;
   dwPasswordLength := INTERNET_MAX_PASSWORD_LENGTH;
   lpszExtraInfo := nil;
   dwExtraInfoLength := INTERNET_MAX_PATH_LENGTH;
   dwStructSize := SizeOf(aURLC);
 end;
 if InternetCrackUrl(PChar(Edit1.Text), Length(Edit1.Text), 0, aURLC) then
 begin
   Memo1.Lines.Add('Shceme - ' + aURLC.lpszScheme);
   Memo1.Lines.Add('HostName - ' + aURLC.lpszHostName);
   Memo1.Lines.Add('UserName - ' + aURLC.lpszUserName);
   Memo1.Lines.Add('Password - ' + aURLC.lpszPassword);
   Memo1.Lines.Add('UrlPath - ' + aURLC.lpszUrlPath);
   Memo1.Lines.Add('ExtraInfo - ' + aURLC.lpszExtraInfo);
   Memo1.Lines.Add('Port - ' + IntToStr(aURLC.nPort));
 end;
end;


а когда заменяю Edit1.Textна строковую переменную то работает не правильно?

Как в данной ситуации выкрутиться? Дело в том, что хочу написать функцию в которую будет передаваться строка с  URL, а не получается.


Reindeer Moss Eater   (2006-11-03 17:20:00) [1]

Но не в данной ситуации

Гетластеррор знает правду во всех ситуациях


Reindeer Moss Eater   (2006-11-03 17:19:00) [2]

У тебя портится значение аргумента после присвоения полю lpszScheme
В случае с эдитом этого не происходит так как Edit1.Text это не просто переменная а свойство.


Igor_thief   (2006-11-03 17:09:00) [3]

Но не в данной ситуации. У меня есть подозрения в чем проблема, но хочу узнать мнение мастеров.


Reindeer Moss Eater   (2006-11-03 17:05:00) [4]

GetLastError знает всю правду


Наверх

Титульная страница Поиск, карта сайта Написать письмо