使用Excel 2007(Vista 64位版本)加载32位DLL
我发现我无法使用我的 Office 2007 版本加载任何 32 位 DLL。我使用的是 Vista 64 位,并且我假设 Office 也处于 64 位模式。 是否可以以 32 位模式启动 Excel 或者 有没有办法使用VB声明DLL来加载32位DLL?
由于我没有正在使用的某些 DLL 的源代码,因此我无法简单地为 64 位模式重新编译内容。 因此,我认为我的选择是强制 Excel 在 32 位模式下运行,或者将我使用的 DLL 声明为 32 位 DLL,即使我的环境是 64 位。
我收到的错误是“找不到 DLL”,即使 DLL 实际上存在。
以下是声明样本。 该语句是否有 32 位属性?
私有声明函数 ESQMain Lib“ESQuotes2.dll”别名“_ESQMain@12”_ (ByVal func As Long、ByValticker_symbol As String、ByVal Result As String) As Integer
I discovered that I can NOT load any 32-bit DLLs using my version of Office 2007. I’m using Vista 64bit and I assume that Office is also in 64-bit mode. Is it possible to start Excel in 32-bit mode
Or
Is there a way to declare a DLL using VB to load a 32-bit DLL?
Since I don’t have the source code to some of the DLLs I am using, I can’t simply re-compile stuff for 64-bit mode. So I think my options are to force Excel to run in 32-bit mode or declare the DLL I’m using as a 32-bit DLL even though my environment is 64-bit.
The error I’m getting is “DLL not found” even though the DLL is in fact there.
Below is a sample declaration. Is there a 32-bit attribute for this statement?
Private Declare Function ESQMain Lib "ESQuotes2.dll" Alias "_ESQMain@12" _
(ByVal func As Long, ByVal ticker_symbol As String, ByVal Result As String) As Integer
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你有一个错误的假设 - Office 目前不提供 64 位版本。 据传 Office 的下一版本(Office 2010)将随 32 和 32 一起发布。 64 位。
You have a bad assumption - Office is not currently available in 64 bit. The next version of office (Office 2010) is rumored to be shipped with 32 & 64 bit.
您不能“声明”DLL 为 32 位。 它可以是 Win32 二进制文件或 Win64 二进制文件。 第一种二进制文件可以在 Win32 进程中加载,第二种可以在 Win64 进程中加载。 你不能混合它们。 Visual Basic 导入上的属性没有帮助。
因此,您唯一的选择是启动 32 位 Excel 二进制文件。 显然,它必须存在,因为 Office 仍然可用于 Vista 32,但问题是它是否安装以及安装在哪里。
You can't "declare" a DLL to be 32 bits. It's either a Win32 binary or a Win64 binary. The first kind of binary can be loaded in Win32 processes, the second in Win64 processes. You can't mix them. Attributes on the Visual Basic import do not help.
So, your only option is to start the 32 bits Excel binary. It has to exist, obviously, since Office is still available for Vista 32, but the question is whether it's installed and where.