程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> ActiveX控件制作與發布,如何將您的C++程序嵌入到浏覽器中

ActiveX控件制作與發布,如何將您的C++程序嵌入到浏覽器中

編輯:C++入門知識

本文演示如何將Qt應用程序打包嵌入IE浏覽器並發布。   1. 例子Qt程序: 新建項目,選擇Qt Library類型,類名為ClassDemo。 新建QtGui類(繼承QWidge)類名ClassGui,在ClassGui的ui中添加QLabel或者QPushButton。 在ClassDemo中添加ClassGui類型的成員變量指針,添加一個public成員函數GetWidget,返回該指針。 編譯,生成動態庫classdemo.dll。   2. 外殼Qt程序: 新建項目,選擇ActiveQtServer類型,類名為ClassServer。 在ClassServer中添加ClassDemo類型的成員變量指針。在構造函數中添加如下代碼: m_classdemo=new ClassDemo(this); QLayout *exist_layout = this->layout(); if ( exist_layout ) { delete exist_layout; } QGridLayout *layout = new QGridLayout; layout->addWidget(m_classdemo->GetWidget(),0,0); layout->setContentsMargins(0,0,0,0); this->setLayout(layout); 編譯,生成動態庫classserver.dll。   3. 編寫安裝信息文件classserver.inf 將classserver.dll依賴的所有庫找到,可能包括以下: classserver.dll classdemo.dll QtGuid4.dll QtCored4.dll msvcp90d.dll msvcr90d.dll 文件內容如下: [Version] signature="$CHICAGO$" AdvancedINF=2.0   [Add.Code] classdemo.dll=classdemo.dll classserver.dll=classserver.dll QtGuid4.dll=QtGuid4.dll QtCored4.dll=QtCored4.dll msvcp90d.dll=msvcp90d.dll msvcr90d.dll=msvcr90d.dll   [classdemo.dll] file-win32-x86=thiscab   [QtGuid4.dll] file-win32-x86=thiscab   [QtCored4.dll] file-win32-x86=thiscab   [msvcp90d.dll] file-win32-x86=thiscab DestDir=11   [msvcr90d.dll] file-win32-x86=thiscab DestDir=11   [classserver.dll] file-win32-x86=thiscab clsid={AAF5BD93-5D87-4741-8804-A8869DF7048A} FileVersion=1,3,1,0 RegisterServer=yes 其中clsid部分的值可在classserver.cpp中找到:QAXFACTORY_DEFAULT中5個的第一個。   4. 打包: 下載cab打包工具(鏈接地址:http://download.csdn.net/detail/fm0517/5114431)。 執行命令: cabarc.Exe n cabname.cab classdemo.dll classserver.dll QtGuid4.dll QtCored4.dll msvcp90d.dll msvcr90d.dll classserver.inf 其中cabname.cab為cab包的名字,後面的參數為所有相關動態庫和安裝信息文件   5. 寫html文件: 例子如下: <HTML>  <HEAD>  <TITLE>New Page</TITLE>  </HEAD>  <BODY>  <br></br> <object ID="QSimpleAX" width=500 height=300 CLASSID="CLSID:AAF5BD93-5D87-4741-8804-A8869DF7048A" CODEBASE="cabname.cab"></object> </BODY>  </HTML>  其中CLSID同inf文件中的clsid,CODEBASE為cab包的名字。 要求將cab包和html文件放在同一個目錄下。   6. 發布: 安裝apache或tomcat,將cab包和html放在相應目錄下即可。 打包成cab後就不需要在本機運行Regsvr注冊了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved