如何将一个32位的VB6应用程序适配到64位的Office上工作?

3

我有一个使用最新的32位Office版本开发的VB 6.0和VBA应用程序。但是由于此应用程序是32位的,因此无法在安装了64位Office版本的系统上运行。我应该采取什么策略将此应用程序移植到64位?我们必须使用VB.NET并尽可能少地修改从VB/VBA到.NET 64位的代码。请建议我可以使用的最佳选项,以便我可以利用所有移植的最佳实践。


1
如果你有32位元的二進制檔案(EXE或DLL),那麼你就卡住了。如果你有所有的原始碼,你需要將它全部移植到VB.Net,以便編譯成為一個機器無關的.Net二進制檔案。 - Hand-E-Food
还有相关内容:https://dev59.com/71HTa4cB1Zd3GeqPPSwL - Prof. Falken
2个回答

4
@Prof.Falken的答案很好,将其移植到VB.NET可能是个不错的主意,但这并不能保证你轻松获得64位版本的应用程序。如果你的.NET移植将使用32位ActiveX组件,而你没有64位替代品,那么这并没有帮助。以下是需要考虑的一些主题:

http://office.microsoft.com/en-us/word-help/choose-the-32-bit-or-64-bit-version-of-microsoft-office-HA010369476.aspx

在我们的工作场所,系统管理员决定不在任何新的64位Windows机器上安装64位Office,因为有太多应用程序在使用(也来自第三方供应商),否则可能会遇到问题。目前我们并没有看到从64位Office版本中获得太多好处。
这里我找到了另一个链接,可能对您有趣:

http://www.pcpro.co.uk/news/enterprise/356173/microsoft-warns-users-off-64-bit-office-2010


感谢所有的评论。它们非常有帮助。 - Siva

3

根据代码的不同情况,以下两种方法中的一种或者两种都可以:

a) 将其转换为VB.NET或者其他语言。

b) 保留VB6,但是用一个封装器调用替换“每个”与Office交互的地方。此封装器调用与一个VB.NET应用程序交互,该应用程序进而与Office交互。

方法b的结果是,它使得旧的VB6程序中的所有业务逻辑均能保持不变。是否适用取决于程序的具体情况,程序员的经验等因素。旧的VB6程序和新的VB.NET程序可以通过例如COM或XML-RPC进行通信。


感谢所有的评论。它们非常有帮助。 - Siva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接