How to make COM ActiveX object work in IE 64 bit?

旧街凉风 提交于 2020-01-14 01:38:28

问题


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.

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.

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.

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?


回答1:


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:\windows\microsoft.net\framework64. Verify that you get the keys in HKLM\Software\Classes\CLSID, not in HKLM\Software\Wow6432Node\Classes\CLSID.



来源:https://stackoverflow.com/questions/2736424/how-to-make-com-activex-object-work-in-ie-64-bit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!