B/S问题(COM+组件问题) 我的程序原是C/S结构,现在想做成B/S结构问题是:原来用到的读写设备的dll如何做到IE可用的COM或ACTIVE X 控件并且我没有dll的原代码,只有函数说明与定义客房端原来还有配置文件,要不然有dll也没有用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将DLL打成CAB包,就可以在IE中引用了! 如何打dll为cab包啊(两个dll文件)原来应用程序下的文件夹和dat配置文件也可以吗 用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.filesRegisterOCXs=RegisterFiles[RInstallApplicationFiles]CopyFiles=install.filesRegisterOCXs=RegisterFiles[DestinationDirs]install.files=11[SourceDisksNames]1=%DiskName%,BravaACX.CAB,1[Add.Code]BravaACX.dll=BravaACX.dllAutorec.dll=Autorec.dllBACXView.ini=BACXView.iniDwg2DL.dll=Dwg2DL.dllmyrdrv.ini=myrdrv.iniMFC71.dll=MFC71.dllmsvcr71.dll=msvcr71.dllmsvcp71.dll=msvcp71.dll[install.files]BravaACX.dll=BravaACX.dllAutorec.dll=Autorec.dllBACXView.ini=BACXView.iniDwg2DL.dll=Dwg2DL.dllmyrdrv.ini=myrdrv.iniMFC71.dll=MFC71.dllmsvcr71.dll=msvcr71.dllmsvcp71.dll=msvcp71.dll[SourceDisksFiles]BravaACX.dll=1Autorec.dll=1BACXView.ini=1Dwg2DL.dll=1myrdrv.ini=1MFC71.dll=1msvcr71.dll=1msvcp71.dll=1[BravaACX.dll]file-win32-x86=thiscabRegisterServer=yesclsid={1BE73243-A85F-4385-939D-14D4845A286A}DestDir=11FileVersion=5,1,0,5[Autorec.dll]file-win32-x86=thiscabRegisterServer=noDestDir=11FileVersion=1,3,0,43[BACXView.ini]file-win32-x86=thiscabRegisterServer=noDestDir=11FileVersion=0,0,0,0[Dwg2DL.dll]file-win32-x86=thiscabRegisterServer=noDestDir=11FileVersion=1,3,0,47[myrdrv.ini]file-win32-x86=thiscabRegisterServer=noDestDir=11FileVersion=0,0,0,0[MFC71.dll]file-win32-x86=thiscabRegisterServer=noDestDir=11FileVersion=7,10,3077,0[msvcr71.dll]file-win32-x86=thiscabRegisterServer=noDestDir=11FileVersion=7,10,3052,4[msvcp71.dll]file-win32-x86=thiscabRegisterServer=noDestDir=11FileVersion=7,10,3077,0[RegisterFiles]%11%\BravaACX.dll http://blog.csdn.net/cuizm/archive/2005/01/22/WEB_CAB.aspx 我的程序原是C/S结构,现在想做成B/S结构问题是:原来用到的读写设备的dll(两个)如何做到IE可用的COM或ACTIVE X 控件并且我没有dll的原代码,只有函数说明与定义如何包装呢客房端原来还有配置文件,要不然有dll也没有用结构如folder | a.dll b.dll |subfolder | c.dat d.ini <OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331"> <PARAM NAME="LPKPath" VALUE="LPKfilename.LPK"></OBJECT>中classid从何而来,下面怎么就可以和dwg文件对接呢 崔占民cuizm的总结不错的。==============<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331"> <PARAM NAME="LPKPath" VALUE="LPKfilename.LPK"></OBJECT>中classid从何而来,下面怎么就可以和dwg文件对接呢===============你可以试着用FrontPage或InterDev引入一个ActiveX控件,classid就会自动生成,另外一些打包工具也可以帮你获取到。 Linux上安装eclipse的问题 运行出现如下错误! JXL 如何创建数值型的excel表格!! 菜鸟 在迷惑中 头发都百了 请高手救我 谢谢 关于static的问题 菜鸟的编译问题(使用的是JCreator) 十万火急!Java中如何实现容器及容器中组件的拖动? 请问如何在JAVA中通过JDBC对网络中其它机器的DB2数据库连接、读取和更新数据, 谁有JAVA程序设计1001例??? double ShortDistance=sqrt(9);报错 -------------关于Jtree!!----------- 如何改变默认观感?
原来应用程序下的文件夹和dat配置文件也可以吗
由于工作的需要,笔者需要在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
原来用到的读写设备的dll(两个)如何做到IE可用的COM或ACTIVE X 控件并且我没有dll的原代码,只有函数说明与定义
如何包装呢客房端原来还有配置文件,要不然有dll也没有用结构如
folder |
a.dll
b.dll
|subfolder
|
c.dat
d.ini
<PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
</OBJECT>
中classid从何而来,下面怎么就可以和dwg文件对接呢
<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
<PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
</OBJECT>
中classid从何而来,下面怎么就可以和dwg文件对接呢===============你可以试着用FrontPage或InterDev引入一个ActiveX控件,classid就会自动生成,另外一些打包工具也可以帮你获取到。