INDY w Turbo C++

problemy z funkcjonowaniem bibliotek, komponentów itp.

INDY w Turbo C++

Nowy postprzez GoldWolf » wtorek, 6 października 2009, 19:53

Witold napisał(a):
Dante napisał(a):
Gdyby chodziło mi tylko o rozwiązanie problemu, to nie ślęczałbym na biblioteką wininet.dll, tylko skorzystałbym z bibliotek np. INDY -> TIdHTTP, i nie byłoby najmniejszego problemu.
Tak jak ja, tylko akurat używam Turbo i nie mam takiej możliwości.


Raczej masz, Turbo C++ Explorer ma zainstalowaną indy (v9.0.50), tyle że komponentów nie ma na palecie, trzeba je tworzyć przez new.

Kod: Zaznacz cały
#include <IdHTTP.hpp>
#pragma comment(lib,"indy.lib") // lub #pragma link "indy.lib"
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
   : TForm(Owner)
{
   TIdHTTP * indyHttp = new TIdHTTP(this);
   Caption =  indyHttp->Version;
   indyHttp->Host = "benchmark.pl";
   indyHttp->HandleRedirects = true;
   Memo1->Text =  indyHttp->Get("http://benchmark.pl/");
}
//---------------------------------------------------------------------------

Dzięki tej informacji, można wykorzystać korzyści jakie daje ta biblioteka. I tak się nią bawię, ale nie do końca rozumiem jak to działa.
Testowałem sobie strony no więc spróbowałem tą, która w ostatnim czasie sprawiała wiele problemów i mam taki oto błąd:
ObrazekKod jak wyżej tylko użyłem strony jak przy testach wininet/urlmon.h:
Kod: Zaznacz cały
//Url = "http://www.bet-at-home.com/odd.aspx?action=toggleEventGroup&SportID=1&EventGroupID=222";
//Url = "http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/idx.html";
//Url = "http://www.dotnetheaven.com/uploadfile/mahesh/commonwininetapi05242005064319am/commonwininetapi.aspx";
//Url = "http://www.microsoft.com/downloads/details.aspx?familyid=413744D1-A0BC-479F-BAFA-E4B278EB9147&displaylang=en";
//Url = "http://tv.wp.pl/programy.html?katn=Lista+kana%B3%F3w&ticaid=18dea";
//Url = "http://www.google.pl/search?hl=pl&client=firefox-a&rls=org.mozilla:en-US:official&hs=Rbr&q=URLOpenBlockingStream&start=20&sa=N";
A próba wczytania strony tego forum kończy się komunikatem:Obrazek

PS aha zapomniałem dodać, że gdy zrobię kontynuacje po w/w błędzie to strona się wczyta poprawnie ;-) nie dotyczy tylko błędu który się pojawia przy próbie wczytania strony forum
Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej. - Albert Einstein

Błędów nie popełnia ten, kto nic nie robi. - Theodore Roosevelt
Avatar użytkownika
GoldWolf
Homos antropiczny
Homos antropiczny
 
Posty: 116
Dołączył(a): piątek, 16 stycznia 2009, 18:42
PodziÄ™kowaÅ‚ : 8
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Siódemka Profesjonalna
Kompilator: Microsoft Visual Studio 2010
Version 10.0.30319.1
Gadu Gadu: 0
    NieznanyNieznana

Re: INDY w Turbo C++

Nowy postprzez Cyfrowy Baron » Å›roda, 7 października 2009, 07:42

Spróbuj przed pobraniem wywołać połączenie:

Kod: Zaznacz cały
HTTP1->Connect(100000);


Rozłącza się natomiast tak:

Kod: Zaznacz cały
HTTP1->Disconnect();
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: INDY w Turbo C++

Nowy postprzez GoldWolf » Å›roda, 7 października 2009, 19:15

Nie działa:
Kod: Zaznacz cały
//   Caption =  indyHttp->Version;
// indyHttp->Host = "google.pl";
// indyHttp->HandleRedirects = true;
// indyHttp->Connect(100000);
//   Memo1->Text = indyHttp->Get("http://benchmark.pl");
Memo1->Text = indyHttp->Get("http://www.google.pl/search?hl=pl&client=firefox-a&rls=org.mozilla:en-US:official&hs=Rbr&q=URLOpenBlockingStream&start=20&sa=N");
indyHttp->Disconnect();
Najciekawsze jest to, że przykład podany przez Witolda czyli ze stroną benchmark.pl działa, z onetem też ale akurat te podane strony mają problemu.
Ostatnio edytowano środa, 7 października 2009, 19:47 przez GoldWolf, łącznie edytowano 1 raz
Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej. - Albert Einstein

Błędów nie popełnia ten, kto nic nie robi. - Theodore Roosevelt
Avatar użytkownika
GoldWolf
Homos antropiczny
Homos antropiczny
 
Posty: 116
Dołączył(a): piątek, 16 stycznia 2009, 18:42
PodziÄ™kowaÅ‚ : 8
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Siódemka Profesjonalna
Kompilator: Microsoft Visual Studio 2010
Version 10.0.30319.1
Gadu Gadu: 0
    NieznanyNieznana

Re: INDY w Turbo C++

Nowy postprzez Cyfrowy Baron » Å›roda, 7 października 2009, 19:44

No to ja już nie pomogę bo nie mam Turbo C++, a w C++ Builder 2007 wszystko mi działa, ale tutaj mam Indy w wersji 10
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: INDY w Turbo C++

Nowy postprzez GoldWolf » Å›roda, 7 października 2009, 19:52

Najdziwniejsze jest, że pomimo tego błędu generuje się .exe i ściąga mi te strony. Tylko po odpaleniu F9 przy próbie użycia Butona 2 (który zawiera ten kod) jest error, trochę to niezrozumiałe. No nic po testuje i zobaczymy
Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej. - Albert Einstein

Błędów nie popełnia ten, kto nic nie robi. - Theodore Roosevelt
Avatar użytkownika
GoldWolf
Homos antropiczny
Homos antropiczny
 
Posty: 116
Dołączył(a): piątek, 16 stycznia 2009, 18:42
PodziÄ™kowaÅ‚ : 8
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Siódemka Profesjonalna
Kompilator: Microsoft Visual Studio 2010
Version 10.0.30319.1
Gadu Gadu: 0
    NieznanyNieznana

Re: INDY w Turbo C++

Nowy postprzez Cyfrowy Baron » Å›roda, 7 października 2009, 20:42

Możliwe, że błąd jest spowodowany przez to, iż to kompilatora uruchamia program.



Na przyszłość nie umieszczaj obrazków na zewnętrznym serwerze, tylko poprzez "Dodaj załącznik" na tym forum.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: INDY w Turbo C++

Nowy postprzez Witold » Å›roda, 7 października 2009, 20:52

Dante napisał(a):Najdziwniejsze jest, że pomimo tego błędu generuje się .exe i ściąga mi te strony.


Te wyjÄ…tki pojawiajÄ… siÄ™ w czasie wykonywania programu, a nie kompilacji programu.
Co do 1, chyba chodzi o datę, pomęcz trochę google...

co do 2:
Wydaje mi się że serwer na którym jest to forum jest wybredny co do pola User-Agent. W indy 9 jest tam "User-Agent: Mozilla/3.0 (compatible; Indy Library)", takiego User-agenta nie przyjmuje – generując "HTTP/1.1 500 Internal Server Error". Spróbuj "podszyć się" np. pod Operę "User-Agent: Opera/9.80" lub firefoxa.
Avatar użytkownika
Witold
Konstrukcjonista
Konstrukcjonista
 
Posty: 223
Dołączył(a): piątek, 29 sierpnia 2008, 10:53
PodziÄ™kowaÅ‚ : 1
OtrzymaÅ‚ podziÄ™kowaÅ„: 14
Kompilator: bcb6, Turbo C++ Explorer
    NieznanyNieznana

Re: INDY w Turbo C++

Nowy postprzez GoldWolf » sobota, 10 października 2009, 12:05

Co do prezentowanego rozwiązania to gości dodał kawałek kodu, który miał zmienić datę (jej sposób przedstawiania) w zmiennej. Jednak nie działa to rozwiązanie. Tylko dziwi mnie coś jak szukałem pliku Global.pas zauważyłem, że mama dwa te pliki, a jeden w folderze Indy10. Co ciekawe mogę też podpiąć bibliotekę <Indysocktransport.HPP> jednak jest ona w folderze <vcl>"
// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved
// (DO NOT EDIT: machine generated header) 'Indysocktransport.pas' rev: 10.00
"
Na razie nie znalazłem rozwiązania, olewam ten błąd zobaczymy podczas testów czy będą jakieś problemy.
Spróbowałem #include <Indy10/IdHTTP.hpp>, jednak problem z linkowaniem innych bibliotek.

PS Indy10 nie jest dobrze zaimplementowana więc nie można jej użyć, pojawia się komunikat o tym, że nie jest kompatybilna ze środowiskiem Borland C++.
Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej. - Albert Einstein

Błędów nie popełnia ten, kto nic nie robi. - Theodore Roosevelt
Avatar użytkownika
GoldWolf
Homos antropiczny
Homos antropiczny
 
Posty: 116
Dołączył(a): piątek, 16 stycznia 2009, 18:42
PodziÄ™kowaÅ‚ : 8
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
System operacyjny: Siódemka Profesjonalna
Kompilator: Microsoft Visual Studio 2010
Version 10.0.30319.1
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Biblioteki i komponenty

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron