工作中的另一位开发人员告诉我,由于某些特定于 Visual Basic 6 应用程序的原因,它无法工作。
但我认为只要包含正确的 DLL 和运行时文件,它就应该可以工作,VB6 不是编译为机器代码吗?
编辑:我只是说一般情况下应该有可能。只要没有人给我一个它不起作用的理论理由,我将在几天内实际测试它。
编辑 2:我认为开发人员指的是 P 代码,vb6 可以选择将其编译为而不是二进制文件,后者在类似于(或前身).Net 框架的虚拟机下运行。
最佳答案
我已经在 Ubuntu 下的 Wine 中测试了一个大型 VB6 应用程序。事件 msi 安装程序工作正常。在低级实现细节方面遇到了一些麻烦(例如,在 CDRF_NOTIFYITEMDRAW 阶段的 NM_CUSTOMDRAW 中,默认情况下 hDC 文本不像在 Windows 通用控件中那样透明)。所以是的,即使是高度子类化的东西也能工作。我只需要熨烫那些小故障。
这是一个检查app是否在wine下运行的函数
Property Get IsWine() As Boolean
IsWine = (GetProcAddress(GetModuleHandle("kernel32"), "wine_get_unix_file_name") <> 0)
End Property
关于vb6 - 编译后的 vb6 应用程序理论上可以在 Mac 上的 WINE 下运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081456/