• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > javascript调用com组件问题!急!急!急!

javascript调用com组件问题!急!急!急!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了javascript组件,javascript组件开发,javascript日期组件,javascript组件化,javascript调用java等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: javascript调用com组件问题!急!急!急!
描述:

我写了一个COM通过HTTP协议从SERVER端下载一个文件。
前端用Html中的Javascript调用。
Html页面在本地调用成功。
在其他电脑上提示不能创建我的ActiveObject.
请问:如何解决。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
<HEAD><TITLE>&AElig;&Aacute;&Auml;&raquo;&frac14;à&iquest;&Oslash;</TITLE>
<META http-equiv=Content-Type c/html; charset=gb2312">
<SCRIPT RUNAT=Server SCOPE=Session ID=clientEventHandlersJS LANGUAGE=javascript >
<!--
                function ConnBtn_onclick()
                 {
ConnBtn.disabled = false;
//此行在其他电脑上不能执行    var  DownCom =new ActiveXObject("DownLoad.DownFile");
                DownCom.HttpDown();
                 }
//-->
</SCRIPT>
</HEAD>
<BODY>
<P>
<INPUT id=ConnBtn type=button value="&Iuml;&Acirc;&Ocirc;&Oslash;&Icirc;&Auml;&frac14;&thorn;" name=ConnBtn LANGUAGE=javascript  />
</P>
</BODY>
</HTML>


解决方案1:

1.创建一个INF文件
  INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如DLL或者其它OCX)。一个INF文件就捆绑了CAB压缩文件所有的必须文件。 缺省情况下,与现有硬盘中文件版本号相同的文件不被下载。要了解有关INF文件及其选项(包括如何创建独立于平台的INF文件)的详细情况,请参考万维网站Packaging Component Code for Automatic Download,或者参考平台软件开发工具包(Platform SDK,包含在Visual C++ 5.0联机文档中)的设置和系统管理服务(Setup and System Management Services)部分的\Setup API\Overview\INF Files目录下的内容。 
  作为示例,下面的INF是用来为ATL多边形控件创建一个CAB文件的。 您可以通过从Visual C++ 5.0光盘下载ATL POLYGON示例程序来创建POLYGON.DLL,并创建一个最小版本。创建该最小版本另外需要一个DLL即 ATL.DLL。ATL.DLL要先于POLYGON.DLL注册,因此首先把ATL.DLL 放置到INF当中。 
; Sample INF file for POLYGON.DLL
[version] 
; version signature (same for both NT and Win95) do not remove
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
polygon.dll=polygon.dll
atl.dll=atl.dll
; needed DLL
[atl.dll]
file-win32-x86=thiscab
FileVersion=2,00,0,7024
DestDir=11
RegisterServer=yes 
[polygon.dll]
file-win32-x86=thiscab
clsid={4CBBC676-507F-11D0-B98B-000000000000} 
FileVersion=1,0,0,1 
RegisterServer=yes
; end of INF file 
  该INF指定了系统需要安装特定版本的ATL.DLL。如果系统中还没有该文件,则需要从和该INF一起创建的CAB文件下载。"thiscab" 是一个关键字,意指包含该INF的CAB文件。您也可以从网上下载所需要的DLL文件,只要指定一个HTTP 网址即可,绝对路径或者相对路径都可以,比如: 
  file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL 
  关键字"file-win32-x86" 指定平台是 x86。 
  得到一个文件的版本号的过程是:在Windows NT或者Windows 95 Explorer中右键点击该文件;从弹出列表中选择Properties,然后在接着弹出的对话框中选择版本标签。有时,您可能需要在文件版本中插入一个额外的0 。比如,对话框中显示ATL.DLL的版本号是2.00.7024,在INF文件中则变为2,00,0,7024 。 
  "DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/SYSTEM 或者 WINNT/SYSTEM32; 10 规定为窗口目录、WINDOWS或者WINNT。如果没有指定DestDir(典型情况),则代码从固定的OCCACHE目录装载。 
  "clsid" 指的是要安装控件的CLSID。 
  创建 INF文件后,再运行CABARC公用程序(在Visual C++ 5.0光盘上的CAB&SIGN目录中)创建CAB文件。您必须在您的源文件目录下面运行CABARC。存档在CAB 文件中的文件需要在命令行列出,次序同它们在INF文件中完全一致。比如,从上面的INF文件为多边形控件做一个CAB文件,需要使用下面的命令 : 
  C:\CAB&SIGN\CABARC -s 6144 POLYGON.CAB ATL.DLL POLYGON.DLL POLYGON.INF
  该CAB文件包含ATL.DLL和POLYGON.DLL的压缩版本,以及将它们展开到POLYGON.INF 文件所需要的信息。 
  有关创建一个下载MFC控件的CAB文件的示例,请参考MFC 4.2b Component Download Information.您需要包含在MFC控件中的DLL文件有MSVCRT.DLL,MFC42.DLL以及 OLEPRO32.DLL。 
2.签署一个CAB文件
  使用Code Signing Wizard签署一个CAB文件: 
  1. 运行公用程序 SIGNCODE (在Visual C++ 5.0光盘的CAB&SIGN 目录下),启动Code Signing Wizard。 
    C:\CAB&SIGN\SIGNCODE
  2. 在Code Signing Wizard对话框当中,点击Next前进到下一页。 
  3. 在您想签署那一个程序? 编辑框中,键入您想签署的CAB文件。 
  4.在您想在证书中使用什么名字? 编辑框中,键入您想在证书中使用的名字。 
  5. 点击Next,前进到下一页。 
  6. 在 您想将该程序签署在哪一个软件开发商证书下面? 编辑框中,键入软件开发商证书(SPC)文件名。 
  7. 在您要在该证书的哪一个文件中查找密码、密匙? 编辑框中,键入私人密匙(PVK)文件名。 
  8. 连续两次点击 Next前进到最后一页。 
  9.点击Sign,签署CAB 文件。您的文件将被数字化签署。 
  您可以不使用CAB文件直接签署您的DLL和OCX 。CAB文件的好处在于它是压缩的,而且,如果和INF文件一起使用,可以将所有必要代码捆绑在一起。 
  将签署过的 CAB文件嵌入一个Web页
  ATL和MFC控件使用标签嵌入网页。在标签,您需要为该控件指定三个属性 : 
   ID - 控件名称 
   CLASSID - 控件的CLSID 
   CODEBASE - 下载控件的位置。CODEBASE 可以指向许多不同的文件类型。 
   CODEBASE可以直接指向一个OCX 文件或者DLL文件: 
CODEBASE="http://www.mysite.com/mydir/polygon.dll#version=1,0,0,1" 
  因为这仅仅完成了DLL或OCX文件的下载和安装,任何必要的DLL支持必须已经装载到了客户机上。 
  如果您在CAB文件中包含了选项版本号,它应该指向要下载的控件。例如,如果POLYGON.DLL有一个版本号1,0,0,1,则CAB文件的版本号也必须是1,0,0,1: 
CODEBASE="http://www.mysite.com/mydir/polygon.cab#version=1,0,0,1" 
  如果您没有包含选项版本号,则不能替换同一个组件(如果它们出现在客户机上的话)的老版本号。
可以不签名,不过需要IE安全设置为中以下,中会提示安装。

解决方案2:

<OBJECT ID="Ctrl1Obj"
        CLASSID="clsid:....................................."
        CODEBASE="http://server.com/ctrl1.cab#version=8,0,0,5007">
</OBJECT>
classid是com组件的guid,在idl文件里头


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • javascript调用com组件问题如满意另加50分
  • 当一个COM组件要被网页(javascript)调用的时候,如何进行错误处理呢?
  • JavaScript调用组件问题?在线等!:)
  • 我怎么才能在我的javascript里面调用Com组件,急
  • 给javascript调用的ATLCOM组件应该以那种版本发布
  • 求一段javascript调用vc6atl做的COM组件的代码
  • 关于javascript调用com组件的问题,请高手指点一二
  • javascript是否可以调用进程外组件
  • 请问javascript与COM组件(ATL)互传参数的规范?高分相送!200分!
  • 在COM组件中调用JavaScript函数非連接點的問題

相关文章

  • 2017-06-05 C++ATL写的BHO插件,加载后IE浏览器老是提示页面已恢复不停的跳转
  • 2017-06-05 请问哪儿有《window核心编程》电子书籍的下载网址,下载成功,立即给分
  • 2017-06-05 使用SendMessage和AfxBeginThread,在Release时报错,Debug时正常,请教高手这是为何100分?
  • 2017-06-05 MFC中如何使用VLC控件
  • 2017-06-05 windows核心编程15章中MemReset代码中的问题????
  • 2017-06-05 《windows核心编程》中的例子不能编译,怎么回事?我应该怎么做?
  • 2017-06-04 COM问题,一个COM对象,上面有两个接口,接口IFirst与接口ISecond,从IFirst->ISecond?谢谢,详见下面。
  • 2017-06-04 vc如何用捕获ie报错,“未指定的错误”对话框
  • 2017-06-04 方法里面包含有数组参数时该怎么办?
  • 2017-06-04 想调试一个exe类型的COM组件,如何把它设置成自动开始服务?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请问VC中有无类似硬件中断的即时消息处理方法?
    • 救命啊给100分:关于不能查询com接口的问题
    • IMultiLanguage2::ConvertStringInIStream的问题
    • [MFC]怎么将activeX控件标记为“脚本安全和初始化安全”?
    • 求教:如何用MSComm控件实现文件的传送??
    • 非模态对话框,以及UI线程有什么区别
    • 请教如何在ATL中使用ActiveX控件,要详细点的,非常感谢!!!!!!!!!!!!!!!!!
    • 哪里能找到有关于中间层的书和资料?
    • 如何将OLE控件的对象传入到组件中去,请大家指教
    • 关于控件签名的问题??

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有