理论上,编译后的 vb6 应用程序可以在 Mac 上的 WINE 下运行吗?

发布于 2024-11-29 17:53:36 字数 248 浏览 1 评论 0原文

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

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

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

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

Another developer at work told me it wouldn't work for some reason specific to Visual Basic 6 applications.

But I think it should work as long as you include the correct DLLs and runtime files, isn't VB6 compiled to machine code?

EDIT: I just mean in general should it be possible. I'm going to actually test this out in a few days as long as nobody gives me a theoretical reason it won't work.

EDIT 2: I think the developer was referring to P-code, which vb6 can optionally compile to instead of binary which runs under a virtual machine similar to (or the precursor of) the .Net framework.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

或十年 2024-12-06 17:53:36

我在 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

I've tested a large VB6 app in Wine under Ubuntu. Event the msi installer worked fine. Had some troubles with low-level implementation details (e.g. in NM_CUSTOMDRAW on CDRF_NOTIFYITEMDRAW phase the hDC text is not transparent by default as in Windows common controls). So yes, even heavily subclassed stuff works. I just had to iron those minor glitches.

Here is a function that checks if app is running under wine

Property Get IsWine() As Boolean
    IsWine = (GetProcAddress(GetModuleHandle("kernel32"), "wine_get_unix_file_name") <> 0)
End Property
与君绝 2024-12-06 17:53:36

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

看起来您可以让大多数 VB6 程序运行。

Take a look at this http://appdb.winehq.org/objectManager.php?sClass=application&iId=7361

It looks like you can get most VB6 programs to work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文