如何使COM ActiveX对象在IE 64位工作?

时间:2010-04-29 10:11:55

标签: c# com 64-bit activex internet-explorer

我使用<object classid="clsid:XXX...">在ASP.NET页面中嵌入了一个COM对象。它工作在IE 32位,但在IE 64位不起作用 - 无法访问其功能。没有错误消息,没有事件日志我可以获得一些信息。

dll在C#中,包括COM可见类,为任何CPU编译(虽然我也尝试过x86),并在客户端安装期间通过执行regasm进行注册。这创建了注册表项,一切正常,除了IE 64.我在互联网上搜索了这个问题,或者至少搜索了一些guidlines并没有找到任何内容。

我在另一个论坛上收到了答案,关于_MERGE_PROXYSTUB(我猜它是预处理器定义?)和ProxyStubClsid32注册表项,但不是很详细。好吧,我再次搜索,找不到多少,并进行了实验:用_MERGE_PROXYSTUB定义重建,到处创建了ProxyStubClsid32键,但没有结果。

至少可能的解决方案或要点是什么?也许有一种方法至少可以获取IE 64无法访问它的日志?

1 个答案:

答案 0 :(得分:3)

AnyCPU将在64位程序中运行,但您必须以不同方式注册它。使用64位版本的Regasm.exe,您可以在c:\ windows \ microsoft.net \ framework64中找到它。验证您是否获得了HKLM \ Software \ Classes \ CLSID中的密钥,而不是HKLM \ Software \ Wow6432Node \ Classes \ CLSID中的密钥。