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
[43509] Re:Re:Re:QueryInterface에 대한 질문입니다.
김태선 [jsdkts] 1145 읽음    2006-02-01 19:51
&를 넣어도 나는 에러라고 하셔서 보니
HTML을 얻는 소스는 별 이상이 없어 보입니다.
에러는 다른 이유로 나는 것 같군요.
빌더 6까지는 아래와 같은 소스를 가끔 사용합니다.
그런데 빌더 2006에서는 실험을 못해봐서 환경적인 차이인지
아니면 이미 다른 이유로 메모리가 침범 당했는지는 모르겠군요.

참고로, CppWebBrowser1을 폼에 떨궈만 놓고
초기화를 행하지 않은채 쓰려고 하면 말씀하신 에러가 발생합니다.
CppWebBrowser1은 반드시 쓰기 전에 한번은 초기화를 해줘야 합니다.
초기화는 아무 웹페이지나 로딩해도 좋고
CppWebBrowser1->Navigate(L"about:blank");
식으로 빈페이지를 설정해 줘도 됩니다.

이렇게 사용전 페이지를 로딩해야 하는 이유는
그래야먄  Document COM 객체가 로딩되어 메모리에 올라오기 때문입니다.
그리고난 후에  QueryInterface를 쓸수 있죠.

그럼 성공하세요.



qwer 님이 쓰신 글 :
: 김태선 님이 쓰신 글 :
: : hr = pDocument->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc); <== 요렇게 고치세요.
: :
: : COM에 대해 개념을 충분히 잡고 만드시면 좋습니다.
: :
: : 그럼.
: :
: :
: : qwer 님이 쓰신 글 :
: : : 웹 브라우저를 이용해 HTML을 읽어온 뒤 HTML을 파일로 저장 후 파싱을 통해 특정 패턴을 찾아내는 프로그램을 만들려고 합니다. 게시판에 올라온 많은 분들의 TCppWebBrowser를 사용한 웹 브라우저 소스를 참고했는데 실행 시 메모리 참조 에러가 납니다. 초보인 저로써는 도대체 뭐가 잘못된 것인지 알수가 없네요.
: : : 고수분들의 도움을 바랍니다.
: : :
: : : 아래는 참고한 소스입니다.
: : :
: : :
: : : ==================================================================================================
: : : IDispatch *pDocument=CppWebBrowser1->Document;
: : : IHTMLElement *HTMLElement;
: : : IHTMLDocument2 *pDoc;
: : : HRESULT hr;
: : :
: : : WideString HTML;
: : : WideString Text;
: : :
: : : hr = pDocument->QueryInterface(IID_IHTMLDocument2, (void**)pDoc); <== 요기서 에러가 납니다.
: : : if(hr == S_OK)
: : : {
: : :     hr = pDoc->get_body(&HTMLElement);
: : :     if(hr == S_OK)
: : :     {
: : :         HTMLElement->get_innerHTML(&HTML);
: : :         HTMLElement->get_innerText(&Text);
: : :         HTMLElement->Release();
: : :     }
: : :     pDoc->Release();
: : : }
: : : Memo1->Lines->Clear();
: : : Memo1->Lines->Add(HTML);
: : : ==================================================================================================
:
: 답변해 주셔서 감사합니다.
: 원래 소스에서 &pDoc로 했었는데도 동일한 에러가 발생했습니다.
: 제가 이것저것 막 편집하는 과정에서 빠진 것 같네요 -_-;
:
: 김태선님께서 말씀하신대로
: hr = pDocument->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc);
:
: 이렇게해서 실행해도 동일한 에러가 납니다.
: 제가 COM에 대해서 전혀 모르고 VC만 사용해 본 터라 잘 모르겠습니다.
: (만해님의 OleVarient인가? 하는 버전으로 해봤는데도 실행시에 에러가 발생합니다.)
: 혹시 빌더 버전에 따라 틀린건가요?
: 제가 사용하는 빌더는 2006입니다.
:
: 답변 부탁드립니다.

+ -

관련 글 리스트
43505 QueryInterface에 대한 질문입니다. qwer 1701 2006/02/01
43540     Re:QueryInterface에 대한 질문입니다. 1614 2006/02/03
43507     Re:QueryInterface에 대한 질문입니다. 김태선 1219 2006/02/01
43508         Re:Re:QueryInterface에 대한 질문입니다. qwer 1410 2006/02/01
43509             Re:Re:Re:QueryInterface에 대한 질문입니다. 김태선 1145 2006/02/01
43510                 Re:Re:Re:Re:QueryInterface에 대한 질문입니다. qwer 1213 2006/02/01
46195                     Re:Re:Re:Re:Re:QueryInterface에 대한 질문입니다. leo21c 2146 2006/08/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.