3

工作中的另一位开发人员告诉我,由于某些特定于 Visual Basic 6 应用程序的原因,它无法工作。

但我认为只要包含正确的 DLL 和运行时文件,它就应该可以工作,VB6 不是编译成机器代码吗?

编辑:我的意思是一般来说应该是可能的。只要没有人给我一个理论上的理由它不会起作用,我将在几天内对其进行实际测试。

编辑 2:我认为开发人员指的是 P 代码,vb6 可以选择编译为,而不是在类似于 .Net 框架(或前身)的虚拟机下运行的二进制文件。

4

2 回答 2

3

我在 Ubuntu 下的 Wine 中测试了一个大型 VB6 应用程序。事件 msi 安装程序工作正常。在低级实现细节方面存在一些问题(例如,在 CDRF_NOTIFYITEMDRAW 阶段的 NM_CUSTOMDRAW 中,hDC 文本默认情况下不像 Windows 通用控件那样透明)。所以是的,即使是大量子类化的东西也可以。我只需要解决那些小故障。

这是一个检查应用程序是否在 wine 下运行的函数

Property Get IsWine() As Boolean
    IsWine = (GetProcAddress(GetModuleHandle("kernel32"), "wine_get_unix_file_name") <> 0)
End Property
于 2011-08-16T19:15:18.753 回答
1

看看这个http://appdb.winehq.org/objectManager.php?sClass=application&iId=7361

看起来你可以让大多数 VB6 程序工作。

于 2011-08-16T16:45:16.850 回答