将64位DLL链接到Visual Basic 6

时间:2010-01-21 18:05:00

标签: dll vb6 32bit-64bit

我正在开发一个项目,该项目使用的是用C编写的DLL,由于多种原因,该编译器同时具有DLL的32位和64位编译。主应用程序是用Visual Basic 6编写的。引入C DLL功能的组件是Visual Basic 6中的一个类,它包含一个充满DLL公共声明函数的模块,该类是这些函数的包装器。在模块中。因此,Visual Basic 6项目本身没有引用。到目前为止,我已经完全编写了32位版本,并对此感到满意。如果只是更改模块中的文件名以指向我不知道的64位DLL,是否应该有任何问题。因为64位DLL将从用Visual Basic 6编写的32位应用程序中的32位DLL调用吗?请不要因为仍然使用这么古老的语言而讨厌我。这是我正在进行更新的当前项目。

3 个答案:

答案 0 :(得分:4)

您不能从32位调用64位代码。执行此操作的唯一方法是在64位进程中运行64位代码,并使用某种进程间通信与它们进行通信。

答案 1 :(得分:2)

Raymond“The Old New Thing”有一个nice article,解释了为什么不可能从32位到64位的错误。

答案 2 :(得分:0)

出于对VB6的所有应有的尊重,VB6于1998年问世,当时尚不完全清楚计算是否将从16位迁移到32位,更不用说64位处理了。除非您提出某种64位<-> 16/32位互通层,否则这是不可能直接实现的。至少不是通过VB6的方式