关于VS2010开发的OCX控件,供WEB加载的问题

dahua010 dahua010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用vs2010的工程MFC ActiveX开发了一个OCX控件,用于给WEB加载,来判断本地程序是安装
控件仅仅实现了一个GetVersion函数

dispinterface _DWebAPP
/////////.xxxxxx.dil
{
properties:
methods:
[id(1)] LONG GetVersion(void);
};
///////////////xxx.cpp
// 调度映射

BEGIN_DISPATCH_MAP(CWebAPPCtrl, COleControl)
DISP_FUNCTION_ID(CWebAPPCtrl, "GetVersion", dispidGetVersion, GetVersion, VT_I4, VTS_NONE)
END_DISPATCH_MAP()

LONG CWebAPPCtrl::GetVersion(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加调度处理程序代码

return 1001;
}

//////////////////xxxx.h
// 调度和事件 ID
public:
enum {
};
protected:
LONG GetVersion(void);

enum
{
dispidGetVersion = 1L
};



之后自己写了一段HTML测试

<HTML>
<input id="input1" value="CallActiveX" type="button" onclick="CallOcx()">
<br>

<OBJECT id="IXinApp"
classid="clsid:0C2D24CC-C60E-4D70-8750-266063E2C324"
width="0" height="0"
codebase="" />
</HTML>

<script language="JavaScript" type="text/JavaScript">
function CallOcx()
{
//--初始化、装载样式文件
alert(IXinApp.GetVersion());
}
</script>
测试结果为

win732位系统下,完全没问题
但是换成WIN764位以后,问题来了。
注册ocx的时候
甭管我使用和32位一样的,直接用regsvr32注册。
还是用网上搜到的,放到sysWOW64文件夹下面,在注册。
都会提示我,注册成功。
但是当我加载页面的时候,不会给我弹出alert。控件应该是加载失败了。

求助各位大侠啊!我该如何更改,头疼了一下午了。。。

补充下。我在WIN764位下查了下注册表。已经存在了
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{0C2D24CC-C60E-4D70-8750-266063E2C324}]
.....
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{0C2D24CC-C60E-4D70-8750-266063E2C324}\Version]
@="1.0"
数据都是对的。
...全文
评论 10
收藏 已收藏
分享
返回顶部
dahua010
ATL 3,248 成员 48,530 内容