怎样在WEB中使用Activex控件的属性

怎样在WEB中使用Activex控件的属性,第1张

为了创建一个ActiveX控件

1选择文件\新建\项目。

2打开如图1一样的对话框,选择Visual C++,MFC。在右面模板对话框中选择MFC ActiveX控件。

3在名称中输入MyActiveX;在位置中输入你需要代码工程放置的硬盘位置,之后选择确定。

4在MFC ActiveX控件向导对话框中(如图2所示),选择控件设置。

5在创建的控件基于下拉菜单中选择STATIC。我们使用了一个静态的控件,我们只是简单的输出结果,并不需要接受输入信息。

6在附加功能中,确定可见时激活,无闪烁激活两项被激活,其它的都被关闭。

7单击完成按键让MFC ActiveX控件向导创建工程以及相关代码。在默认的情况下,向导会把MFC作为一个动态连接库使用。我们需要对其作一些更改,否则ActiveX控件无法在没有提供MFC动态连接库的系统当中下载和运行。这会导致当网页下载和运行ActiveX控件时候导致错误警报。在Visual Studio目录中, 选择工程、属性。然后选择配置属性->常规->MFC的使用,把MFC的使用改成在静态库中使用MFC。

8向导将会给我们建立下面三个不同的类型以供使用:

CMyActiveXApp – 这个是ActiveX应用程序类,继承于COleControlModule。后者是驱动一个OLE控件的基础。控件模块对象包含了初始化(InitInstance)和清理(ExitInstance)的成员函数

CMyActiveXCtrl – 由基类COleControl驱动。它提供了我们的控件的大部分功能。

CMyActiveXPropPage – 由基类COlePropertyPage驱动。它被用来管理控件的属性页对话框。ActiveX Control控件向导会建立一个默认的对话框为这个控件提供属性页。

ActiveX控件调用JavaScript函数的方法

1向ActiveX注册JS函数:

在ActiveX中添加接口方法 - void RegisterFunction(BSTR bstrFuncName, IDispatch dispFunc);

JavaScript代码声明一个函数,并调用RegisterFunction接口向ActiveX注册该函数,供ActiveX调用。

2保存注册的函数,ActiveX使用CComDispatchDriver对象保存注册的JS函数(IDispatch接口指针)

CComDispatchDriver m_Func1;

void RegisterFunction(BSTR bstrFuncName, IDispatch dispFunc)

{

if (bstrFuncName == "1")

m_Func1 = dispFunc;

}

3调用注册的函数,ActiveX使用CComDispatchDriver::InvokeN函数调用注册的函数

以下是对接受一个无符号整型参数的JS函数的调用:

VARIANT varArg[1];

varArg[0]vt = VT_UINT; varArg[0]uintVal = 1;

try{

m_Func1InvokeN((DISPID)DISPID_VALUE, varArg, 1);

}

catch(){}

4注意,对JS函数的调用必须在ActiveX程序的主线程中执行!

解决办法:1 需要使用管理员权限,即运行dll文件时要以管理员身份运行cmd。XP中无需关心权限,但是win7和win10是需要管理员权限的;

2 注册dll文件时要使用绝对路径;

3 在开始菜单中打开命令行提示符 上单击右键,以 管理员身份运行 ,在DOS命令中输入regsvr32 (记得加一空格)文件地址\xxxdll,回车确定;

4 注册Windows版本,32位的电脑把文件(xxxxdll)复制到C:\Windows\system32文件下,不是32位电脑,要把那个文件放入到 C:\Windows\syswow64 路径下 ;

5 也有说是什么C++运行库或者net插件少了,因为系统注册控件时需要C++开发环境的支持,所以可以在微软官网上下载了C++2008。很多Win10家庭版不支持 一些软件就是这个原因;

6 环境配置,将项目配置属性--->常规--->MFC的使用 修改为在静态库中使用MFC;

7 缺少依赖文件 ,可以用depends工具,和可以运行的电脑进行对比,对比看是否缺少dll文件。也可以将无法注册成功的dll用dependency打开,查看它所依赖的dll是否有(**带问号的就是缺少的dll),如果有,将所缺少的dll考到system32下面,再次注册时,即可注册成功。dependency的打开方式:C:/Program Files/Microsoft Visual Studio/Common/Tools/DEPENDSEXE;

8 有些是缺少Vc++支持库,需要先安装 ,系统注册控件时需要C++开发环境的支持,所以在微软官网上下载了C++2008。

下载地址:>

以上就是关于怎样在WEB中使用Activex控件的属性全部的内容,包括:怎样在WEB中使用Activex控件的属性、【急】js中调用ActiveX控件中的函数、server2000 activex控件注册不成功等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9775253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存