C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[15209] Re:[만해] _ttol() 함수가 이상하네요 흑흑~ <- 문 자답~
만해 [greenuri] 1551 읽음    2002-02-01 19:34
만해 님이 쓰신 글 :
: 안녕하세요 요즘 들어 대폭 질문을 많이 하네요 ~
:
: 제가 임프님께서 올린 WinInet으로 파일 다운 받기를 조금 고쳐서
:
: Url이 제대로 된것인지 판단하는 Is_Accessble이라는 함수를 만들어서요
:
: 리턴값으로 StatusText를 받아 와서
:
: 이걸 _ttol()함수로 long으로 전환한후 HTTP_STATUS_OK 와 비교를 하는데요
:
: 이 부분에서 StatusText는 "OK"인데 _ttol() 함수의 결과값은 0가 되네요
:
: 원래 데로라면 200이 되어야 하는데
:
: 전체 소스하고 같이 올립니다.
:
: 좀 봐주세요
:
: AnsiString __fastcall TForm1::Is_Accesble(AnsiString Url)
: {
:   AnsiString Agent = "Mozilla/4.0+(compatible;+MSIE+5.01;Windows+NT+5.0)";
:
:   if ( Url.AnsiPos("http://") <= 0 )
:     Url = "http://" + Url;
:
:   HINTERNET ISession = InternetOpen(Agent.c_str(), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
:   HINTERNET HttpFile = InternetOpenUrl(ISession, Url.c_str(), NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);
:   AnsiString UrlBuff;
:   UrlBuff.SetLength(32);
:   DWord BuffSize = 32;
:   if(HttpQueryInfo(HttpFile, HTTP_QUERY_STATUS_TEXT, UrlBuff.c_str(), &BuffSize, NULL)==false)
:   {
:     switch(GetLastError())
:      {
:        case ERROR_INSUFFICIENT_BUFFER:
:        UrlBuff.SetLength(BuffSize+1);
:        HttpQueryInfo(HttpFile, HTTP_QUERY_CONTENT_LOCATION, UrlBuff.c_str(), &BuffSize, 0);
:        break;
:
:        case ERROR_HTTP_HEADER_NOT_FOUND:
:        UrlBuff = Url;
:        break;
:
:        default:
:        InternetCloseHandle(HttpFile);
:        return 0;
:      }
:   }
:   return UrlBuff;
: }
:
: void __fastcall TForm1::Button1Click(TObject Sender)
: {
:   AnsiString StatusCode;
:   HRESULT hr = NULL;
:   WideString wURL = Edit1->Text;
:   hr = IsValidURL(NULL,wURL,0);
:   if ( hr != S_OK )
:     return ;
:
:   StatusCode = Is_Accesble(wURL);
:   Edit2->Text = StatusCode;
:   long nStatusCode = _ttol(StatusCode.c_str());  // 여기서 nStatusCode가 StatusCode가 OK이면
:   if ( nStatusCode != HTTP_STATUS_OK )           // 200이 되야 하는데 0이 되네요 쩝~
:     {
:       Memo1->Text = "존재하지 않는 페이지 입니다";
:       return ;
:     }
: }
:
: 고수님들의 조언 바랍니다.

헐~

제가 요즘 왜 이런지~

if(HttpQueryInfo(HttpFile, HTTP_QUERY_STATUS_TEXT, UrlBuff.c_str(), &BuffSize, NULL)==false)

위의 쿼리문(HTTP_QUERY_STATUS_TEXT)을 HTTP_QUERY_STATUS_CODE로 바꿔줘야 하는걸 깜빡했네요

요즘 왜이러나 한해 더 늙어 그런감 쩝~


+ -

관련 글 리스트
15204 [만해] _ttol() 함수가 이상하네요 흑흑~ 만해 2231 2002/02/01
15209     Re:[만해] _ttol() 함수가 이상하네요 흑흑~ <- 문 자답~ 만해 1551 2002/02/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.