2010-11-18 119 views
5

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

回答

3

64位上的32位加载项为not supported

的哪个版本的建议:Microsoft recommends,除非你碰到一个32位进程的内存限制,这是唯一可能的,如果你需要处理的非常大的电子表格发生使用Office的32位版本Office 2010的安装是如下:

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

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

的64位版本的更新您的内部解决方案的64位版本

如果您需要使用64位版本,因为您有内存限制the following options

  • 如果你的源代码,您可以生成自己的64位版本,

  • 您可以联系一个更新版本的供应商,

  • 您可以搜索替代方案。

但是实际上这是不本文由微软在提到第四个选项:您可以创建一个32位将作为您的64位宏之间的代理进程外-COM服务器和传统的32位COM组件或创建一个COM +应用程序。样本在这里提供:

Accessing 32-bit DLLs from 64-bit code

+0

没有64位编译器VB6。 – Joshua 2010-11-18 21:18:39

+0

@Joshua:不,没有。但是微软的文章谈到了这个问题的一般解决方案。 – 2010-11-18 21:27:32

+0

“从64位代码访问32位DLL”已经移动。我修复了这个链接。 – 2014-01-13 11:49:15