国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用VB將第三方控件打成CAB包(在WEB頁面上使用)

2024-07-21 02:20:37
字體:
來源:轉載
供稿:網友
注冊會員,創建你的web開發資料庫,用vb將第三方控件打成cab包(在web頁面上使用)
由于工作的需要,筆者需要在web頁面上顯示cad文件(在客戶機器上不裝cad)。由于時間緊迫,現寫控件根本來不及,沒辦法在網上搜尋了一圈。找到了一個軟件,大小大概有8兆左右。可以用來瀏覽dwg類型的文件。用了一下,發現其用的是一個dll類型的控件,并帶有兩個附屬的dll文件。

如果要在web頁面上使用控件,則控件需要打成cab類型的包。上網找了一個打cab包的工具,名字叫iexpress。不過如果用這個工具打包需要手工編寫inf文件,inf文件的結構比較復雜,手工編寫容易出現錯誤。想了一下,覺得vb自帶的打包工具可以制作cab文件包。不過vb的打包工具開始必須選擇一個vb的工程。所以用vb建了一個跟控件名稱一樣的工程,編譯了一下,然后用vb自帶的工具進行打包,打包的類型選擇internet類型的安裝包。到選擇文件這一步的時候,要將多余的文件去掉,因為這個第三方控件不是vb編寫的,所以根本不用帶vb的運行庫。將第三方控件的主控件dll和兩個附屬的dll都加到包中,然后開始打包。

包打完之后寫了個測試頁,在本機上試了一下沒有問題(因為本機已經安裝了控件),所以在其他的機器上測試了一下,不能正常安裝控件,頁面上顯示一個紅叉。查看ie臨時文件夾下的控件安裝日志文件,內容顯示控件不能正常注冊。到網上查找了一些資料,沒有找到原因。后來用vc自帶的dependency walker工具查看了一下控件的dll,發現里邊還包含了另外三個dll,分別為:msvcr71.dll、msvcp71.dll、mfc71.dll。將這三個文件也加進了包里,測試之后,一切正常。



在web頁面上使用控件的腳本如下:



<html>

<head>

<title>bravaacx.cab</title>

</head>

<body>

<!-- 如果這頁上的任何控件需要授權,您必須

創建一個授權包文件。 運行 lpk_tool.exe 來創建

要求的 lpk 文件。 lpk_tool.exe 將從 activex sdk 中找到,

http://www.microsoft.com/intdev/sdk/sdk.htm. 如果您有 visual

basic 6.0 cd, 您可以在/tools/lpk_tool 目錄下找到它。



下面是對象標記的例子:



<object classid="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">

<param name="lpkpath" value="lpkfilename.lpk">

</object>

-->



<object id="ctlbravaacxview" classid="clsid:1be73243-a85f-4385-939d-14d4845a286a"

codebase="bravaacx.cab#version=5,1,0,5" width="60%" height="60%">

<param name="filename" value="db_samp.dwg">

</object>



</body>

</html>



打包cab控件的inf文件內容為:



;bravaacx.ocx 的 inf 文件

;destdir 可以為 10 則在 windows 目錄,為 11 則在 windows/system(32) 目錄,或為空則在 occache 目錄。



[version]

signature="$chicago$"

advancedinf=2.0

[defaultinstall]

copyfiles=install.files

registerocxs=registerfiles

[rinstallapplicationfiles]

copyfiles=install.files

registerocxs=registerfiles

[destinationdirs]

install.files=11

[sourcedisksnames]

1=%diskname%,bravaacx.cab,1



[add.code]

bravaacx.dll=bravaacx.dll

autorec.dll=autorec.dll

bacxview.ini=bacxview.ini

dwg2dl.dll=dwg2dl.dll

myrdrv.ini=myrdrv.ini

mfc71.dll=mfc71.dll

msvcr71.dll=msvcr71.dll

msvcp71.dll=msvcp71.dll

[install.files]

bravaacx.dll=bravaacx.dll

autorec.dll=autorec.dll

bacxview.ini=bacxview.ini

dwg2dl.dll=dwg2dl.dll

myrdrv.ini=myrdrv.ini

mfc71.dll=mfc71.dll

msvcr71.dll=msvcr71.dll

msvcp71.dll=msvcp71.dll

[sourcedisksfiles]

bravaacx.dll=1

autorec.dll=1

bacxview.ini=1

dwg2dl.dll=1

myrdrv.ini=1

mfc71.dll=1

msvcr71.dll=1

msvcp71.dll=1



[bravaacx.dll]

file-win32-x86=thiscab

registerserver=yes

clsid={1be73243-a85f-4385-939d-14d4845a286a}

destdir=11

fileversion=5,1,0,5



[autorec.dll]

file-win32-x86=thiscab

registerserver=no

destdir=11

fileversion=1,3,0,43



[bacxview.ini]

file-win32-x86=thiscab

registerserver=no

destdir=11

fileversion=0,0,0,0



[dwg2dl.dll]

file-win32-x86=thiscab

registerserver=no

destdir=11

fileversion=1,3,0,47



[myrdrv.ini]

file-win32-x86=thiscab

registerserver=no

destdir=11

fileversion=0,0,0,0



[mfc71.dll]

file-win32-x86=thiscab

registerserver=no

destdir=11

fileversion=7,10,3077,0



[msvcr71.dll]

file-win32-x86=thiscab

registerserver=no

destdir=11

fileversion=7,10,3052,4



[msvcp71.dll]

file-win32-x86=thiscab

registerserver=no

destdir=11

fileversion=7,10,3077,0

[registerfiles]

%11%/bravaacx.dll





                           作者:崔占民

                     email:[email protected]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海原县| 额敏县| 富川| 房产| 河东区| 北海市| 黑龙江省| 武平县| 衢州市| 忻州市| 东阿县| 田林县| 志丹县| 苏尼特右旗| 宁德市| 滨海县| 兴仁县| 合作市| 柞水县| 汉寿县| 盐城市| 庆阳市| 休宁县| 大姚县| 舟山市| 鲁山县| 山东| 旌德县| 丰县| 武隆县| 高要市| 兴仁县| 远安县| 商城县| 丁青县| 顺昌县| 博乐市| 卢湾区| 西乡县| 宁陕县| 南部县|