0

我正在更新一个用 C 编写的现有 DLL 项目。出于多种原因,需要 32 位和 64 位版本。

使用这些 DLL 的应用程序是用 Visual Basic 6 编写的,并且是项目中的一个类所需要的。此类包含一个完整Public Declare的 DLL 函数模块;该类是模块中函数的包装器。

Visual Basic 6 项目本身没有引用。到目前为止,我已经完成了 32 位版本的编码并且对它很满意。

将模块中的文件名更改为指向 64 位 DLL 是否存在任何问题,因为 64 位 DLL 将在用 Visual Basic 6 编写的 32 位应用程序中从 32 位 DLL 调用?

4

3 回答 3

4

您不能从 32 位调用 64 位代码。做到这一点的唯一方法是在 64 位进程中运行 64 位代码,并使用某种进程间通信与它们对话。

于 2010-01-21T18:08:27.040 回答
2

Raymond "The Old New Thing" 有一篇很好的文章解释了为什么不能从 32 位转换到 64 位。

于 2010-01-21T18:26:55.910 回答
0

尽管对 VB6 给予了应有的尊重,但 VB6 于 1998 年问世,当时还不清楚计算是否会从 16 位迁移到 32 位,更不用说 64 位处理了。除非您想出某种 64 位 <-> 16/32 位互通层,否则这不可能直接实现。至少不是通过 VB6

于 2020-01-13T12:41:10.113 回答