首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在64位Windows10中注册的VB6 (32位)自定义DLL,但无法初始化ActiveX对象

在64位Windows10中注册的VB6 (32位)自定义DLL,但无法初始化ActiveX对象
EN

Stack Overflow用户
提问于 2020-02-23 21:26:58
回答 1查看 188关注 0票数 1

我有一个32位的VB6自定义动态链接库,我一直在使用它直到Excel2013,Win-7。现在,在Win-10上迁移到Excel 2016后,Excel文件变得不可用。我已经通过PowerShell (管理模式)在Win-10上注册了那个旧的DLL文件,它显示注册成功。但是,当Excel中的模块通过CreateObject执行创建对象时,它显示ActiveX无法创建对象。另一个令人惊讶的是,当我试图从(在VB6中) Tools -> Reference中引用Excel时,我可以引用它,我可以访问类/函数,但当我试图执行它时,它仍然显示关于ActiveX的相同错误。

我还需要在Windows-10中做些什么才能让它运行?

EN

回答 1

Stack Overflow用户

发布于 2020-02-24 16:51:18

32位程序只能加载32位dlls。64位程序只能加载64位dlls。这事很重要。在VB6和Excel所做的COM中,您可以通过将错误的位动态链接库强制到dllhost中来实现不兼容位。所有调用都使用EXE服务器进行编组。请参见https://docs.microsoft.com/en-us/windows/win32/com/registering-the-dll-server-for-surrogate-activation (请注意,goggle的破坏搜索)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60362649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档