Office 64位中的32位dll

daw*_*idg 6 dll 64-bit 32-bit ms-office

据我所知,我无法在64位进程中加载​​32位dll.我有一个32位DLL(VB6组件),没有源代码,加载到Excel自动化宏.我有什么选择?

Dir*_*mar 7

64 位不支持32 位加载项。Microsoft 建议使用 32 位版本的 Office,除非您遇到 32 位进程的内存限制,这仅在您需要处理超大电子表格时才可能发生:

安装哪个版本的 Office 2010 的建议如下:

  • 如果您组织中的用户依赖于 Office 的现有扩展,例如 ActiveX 控件、第三方加载项、基于以前版本的 Office 构建的内部解决方案或直接与 Office 交互的 32 位版本的程序,我们建议在运行 32 位和 64 位支持的 Windows 操作系统的计算机上安装 32 位 Office 2010(默认安装)。

  • 如果您组织中的某些用户是使用大于 2 GB 的 Excel 电子表格的 Excel 专家用户,他们可以安装 64 位版本的 Office 2010。此外,如果您有内部解决方案开发人员,我们建议这些开发人员可以访问 64 位版本的 Office 2010,以便他们可以在 64 位版本的 Office 2010 上测试和更新您的内部解决方案。

如果由于内存限制而需要使用 64 位版本,您有以下选择

  • 如果有源码,可以自己生成64位版本,

  • 您可以联系供应商获取更新版本,

  • 您可以搜索替代解决方案。

Microsoft 在本文中实际上没有提到第四个选项:您可以创建一个 32 位进程外 COM 服务器,作为您的 64 位宏和旧的 32 位 COM 组件之间的代理,或者创建一个 COM+ 应用程序。此处提供了一个示例:

从 64 位代码访问 32 位 DLL

  • @MauryMarkowitz 现在是 2020 年,Covid19 正在席卷地球。但真正的难题是让 32 位 DLL 在 64 位 Office 安装中运行。 (4认同)