另一位开发人员告诉我,由于某些特定于Visual Basic 6应用程序的原因,它不起作用。
但是我认为只要包含正确的DLL和运行时文件就可以工作,是不是VB6编译成机器代码?
编辑:我只是意味着它应该是可能的。只要没有人给我理论上的理由它就行不通,我会在几天内对此进行测试。 编辑2:我认为开发人员指的是P代码,vb6可以选择编译而不是二进制文件,它在类似于(或.Net框架的前身)的虚拟机下运行。答案 0 :(得分:3)
我在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
答案 1 :(得分:1)
看看这个http://appdb.winehq.org/objectManager.php?sClass=application&iId=7361
看起来你可以让大多数VB6程序工作。