2009-05-06 3 views
0

Ich habe eine ActiveX-Komponente, die ein Steuerelement (Webbrowser-Steuerelement in Verbundsteuerungsdialogfeld eingebettet) für den Zugriff auf bestimmte URL enthält. Die ActiveX-Komponentenzugriffs-URL kann in anderen MFC- oder VB-Projekten verwendet werden. Die Verwendung besteht darin, die ActiveX-Komponente zu registrieren (regsvr32 cmd verwenden) und dann das Steuerelement in ein Dialogfeld einzufügen, indem Sie "ActiveX-Steuerelement einfügen" verwenden.Wie konvertiert man ein ActiveX (webbrower hosted) Projekt in ein statisches Bibliotheksprojekt?

Jetzt plane ich, die ActiveX-Komponente in statische Bibliothek mit dem gleichen Browser-Fenster und Web-Access-Funktionen zu konvertieren. Ich frage mich, wie es geht? Darüber hinaus kann das Browserfenster (in der statischen Bibliothek) in anderen MFC-Projekten verwendet werden. Ist es durch Funktionen aufrufen? Gibt es ein Beispielprojekt?

Ich habe Microsoft .Net 2003 als Entwicklungswerkzeug verwendet.

Vielen Dank im Voraus.

Antwort

0

Ich bin ein wenig unklar über das Ausmaß, in dem Sie denken, dass Sie alles in eine statische Bibliothek setzen können.

Dies ist wahrscheinlich nicht so straightfoward wie Sie denken. Der Assistent und der Code in VS/MFC/ATL, mit dem Sie ein ActiveX-Steuerelement in einen Dialog einfügen können, machen Ihnen viel Arbeit. Das heißt, es macht bestimmte Annahmen über die Art der Website für das ActiveX-Steuerelement, z. B. wie die Nachrichtenpumpe funktioniert, wer das Besitzerfenster, das Threadingmodell und usw. ist. In einem Dialog sind dies Bekannte. In einem anderen Kontext sind sie nicht.

Der richtige Weg zu tun, was Sie tun, ist es als ActiveX-Steuerelement verlassen. Vielleicht könnten Sie andere Optionen angeben, wenn Sie angeben, welches Problem Sie lösen möchten, indem Sie es in eine statische Bibliothek einfügen.

Das WebBrowser-ActiveX-Steuerelement ist ein Wrapper für die Bibliothek shdocvw.dll im Ordner system32. shdocvw.dll ist das Herz und die Seele von IE (und, als Erweiterung, viel von der Windows Explorer-Schnittstelle). Es basiert alles sehr stark auf COM, das eigene Regeln zum Laden von Bibliotheken hat und so weiter. Daher muss die Site (jede Anwendung, die Ihr ActiveX-Steuerelement verwenden möchte) wirklich mit ActiveX/COM kompatibel sein.

+0

Danke Alan! Der Grund, warum ich ActiveX in eine statische Bibliothek konvertieren möchte, ist die Kundenanforderung. Einige unserer Kunden möchten keine separate DLL-Datei in das Paket aufnehmen. Sie möchten die Browsersteuerung erstellen, die wir in ihrem Code bereitstellen, z. B. MFC- oder ATL-Projekte. Gibt es einen anderen Weg, dieses Ziel zu erreichen? – bionicoder

+0

Sie sollten in der Lage sein, eine statische MFC/ATL-Bibliothek zu erstellen, die den shdocvw WebBrowser hostet. Dies wird einige benutzerdefinierte Codierung auf Ihrem Teil bedeuten - die ATL/MFC-Projektassistenten erstellen nur DLLs, die COM-Steuerelemente hosten. Informationen zum Hosten von ActiveX von ATL finden Sie unter http://msdn.microsoft.com/en-us/library/1stby863(VS.71).aspx. shdocvw WebBrowser kann aus den oben genannten Gründen (installiert als Kernkomponente des IE) nicht in eine statische Bibliothek umgewandelt werden. –

Verwandte Themen