如何使 COM ActiveX 对象在 IE 64 位中工作? [英] How to make COM ActiveX object work in IE 64 bit?

查看:26
本文介绍了如何使 COM ActiveX 对象在 IE 64 位中工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a COM object embeded in ASP.NET page using <object classid="clsid:XXX...">. It works in IE 32 bit, but does not work in IE 64 bit - can't access its functions. There are no error messages, no event logs where I can get some information.

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

The dll is in C#, includes COM visible class, compiled for Any CPU (though I also tried x86), and registered during client installation by executing regasm. This creates registry keys, well everything works fine except for IE 64. I searched internet about the issue or at least some guidlines and didn't find anything.

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

I received an answer on another forum, something about _MERGE_PROXYSTUB (I guess it's preprocessor definition?) and ProxyStubClsid32 registry key, but not very detailed. Well, I searched again, didn't find much, and experimented: rebuilt with _MERGE_PROXYSTUB defined, created ProxyStubClsid32 keys everywhere, but with no result.

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

What can be at least possible solutions or points to look at? Maybe there is a way at least to get the logs about why IE 64 can't access it?

推荐答案

AnyCPU 可以在 64 位程序中工作,但您必须以不同的方式注册它.使用 64 位版本的 Regasm.exe,您将在 c:windowsmicrosoft.netframework64 中找到它.确认您在 HKLMSoftwareClassesCLSID 中获取密钥,而不是在 HKLMSoftwareWow6432NodeClassesCLSID 中.

AnyCPU will work in a 64-bit program, but you have to register it differently. Use the 64-bit version of Regasm.exe, you'll find it in c:windowsmicrosoft.netframework64. Verify that you get the keys in HKLMSoftwareClassesCLSID, not in HKLMSoftwareWow6432NodeClassesCLSID.

这篇关于如何使 COM ActiveX 对象在 IE 64 位中工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆