2009-05-06 5 views
0

특정 URL에 액세스하기위한 컨트롤 (복합 컨트롤 대화 상자 창에 포함 된 웹 브라우저 컨트롤)이 포함 된 ActiveX 구성 요소가 있습니다. URL에 액세스하는 ActiveX 구성 요소는 다른 MFC 또는 VB 프로젝트에서 사용할 수 있습니다. 사용법은 ActiveX 구성 요소 (regsvr32 cmd 사용)를 등록한 다음 "ActiveX 컨트롤 삽입"을 사용하여 대화 상자 창에 컨트롤을 삽입하는 것입니다.ActiveX (webbrower 호스팅) 프로젝트를 정적 라이브러리 프로젝트로 변환하는 방법은 무엇입니까?

이제 ActiveX 구성 요소를 동일한 브라우저 창과 웹 액세스 기능을 가진 정적 라이브러리로 변환 할 계획입니다. 나는 그것을하는 방법을 궁금해? 또한 다른 MFC 프로젝트에서 브라우저 윈도우 (정적 라이브러리에 있음)를 어떻게 사용할 수 있는지도 설명합니다. 함수 호출을 통해서입니까? 샘플 프로젝트가 있습니까?

저는 Microsoft .Net 2003을 개발 도구로 사용했습니다.

대단히 감사합니다.

답변

0

정적 라이브러리에 모든 것을 넣을 수 있다고 생각되는 정도가 약간 분명하지 않습니다.

이것은 아마도 당신이 생각하는 것처럼 똑바로되지 않을 것입니다. 대화 상자에 ActiveX 컨트롤을 삽입 할 수있는 VS/MFC/ATL의 마법사와 코드는 많은 작업을 수행합니다. 즉, 메시지 펌프 작동 방식, 소유자 창, 스레딩 모델 등 ActiveX 컨트롤 사이트의 특성에 대한 특정 가정을합니다. 대화 상자에서 이것들은 알려진 것입니다. 다른 맥락에서, 그들은 그렇지 않습니다.

당신이하고있는 일을 제대로 수행하는 방법은 ActiveX 컨트롤로 두는 것입니다. 어쩌면 정적 라이브러리에 넣음으로써 해결하고자하는 문제점을 언급했다면 다른 옵션을 줄 수 있습니다.

WebBrowser ActiveX 컨트롤은 실제로 system32 폴더의 shdocvw.dll 라이브러리에 대한 래퍼입니다. shdocvw.dll은 IE의 마음과 영혼입니다 (그리고 확장, Windows 탐색기 인터페이스의 대부분). COM을 기반으로하는 모든 프로그램은 라이브러리를로드하는 등의 자체 규칙을 가지고 있습니다. 따라서 사이트 (ActiveX 컨트롤을 사용하려는 모든 응용 프로그램)는 ActiveX/COM에 친숙해야합니다.

+0

감사합니다. Alan! ActiveX를 정적 라이브러리로 변환하려는 이유는 고객 요구 사항입니다. 일부 고객은 패키지에 별도의 DLL 파일을 포함하고 싶지 않습니다. 우리가 코드에 제공하는 브라우저 컨트롤 (예 : MFC 또는 ATL 프로젝트)을 만들고 싶습니다. 이 목표를 달성하기위한 다른 방법이 있습니까? – bionicoder

+0

shdocvw WebBrowser를 호스팅하는 MFC/ATL 정적 라이브러리를 만들 수 있어야합니다. 이는 사용자 정의 코딩을 의미합니다. ATL/MFC 프로젝트 마법사는 COM 컨트롤을 호스팅하는 DLL 만 빌드합니다. ATL에서 ActiveX 호스팅에 대한 정보는 http://msdn.microsoft.com/en-us/library/1stby863(VS.71).aspx를 참조하십시오. shdocvw WebBrowser는 위에서 언급 한 이유로 (IE의 핵심 구성 요소로 설치됨) 정적 라이브러리로 만들 수 없습니다. –

관련 문제