【问题标题】:WINE error when running windows application运行 Windows 应用程序时出现 WINE 错误
【发布时间】:2009-08-26 19:43:02
【问题描述】:

一位用户报告说我们的一个应用程序不能在 WINE 下运行。它一直运行,直到他通过某种形式,然后冻结。 WINE 给出以下输出:

~/.wine/drive_c/HeroLab$ wine HeroLab.exe
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:HTTPREQ_QueryOption Semi-STUB INTERNET_OPTION_SECURITY_FLAGS: 0
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_SECURITY_FLAGS; STUB
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0

谁能向我解释这些信息?我假设它们是来自 WINE 的消息,报告我们正在以 WINE 不支持的方式调用函数,但我们的代码根本不调用 CreateBitmapIndirect。

我们如何才能找到这个问题的根源,并修复我们的应用程序使其在 WINE 下运行?

谢谢。

【问题讨论】:

  • 您最好直接与 WINE 开发人员取得联系。他们可能会很容易接受那些有兴趣确保他们的应用在 WINE 中运行并且知道如何查明此类错误消息的人。
  • forum.winehq.org 唯一的地方吗?我看了那里,但我想我会先在这里尝试,希望有人至少可以向我解释错误。
  • 还有一个开发者的邮件列表,参见:winehq.org/forums。虽然我不确定这个问题在用户论坛或开发者列表中是否更合适,因为它介于这两个主题之间。

标签: winapi wine


【解决方案1】:

Okay Wine 处于不断发展的状态,你需要了解一些事情;

-您使用的是哪个版本的 wine 1.1.38 在撰写本文时是最新的,您可能使用的是旧版本,因此您遇到的问题已得到修复。
-什么应用程序有问题?您是否搜索过应用程序数据库? http://appdb.winehq.org/ 您可以查看在 Wine 下运行应用程序的当前状态以及用户遇到的任何问题。

【讨论】:

    【解决方案2】:

    http://source.winehq.org/source/dlls/wininet/internet.c

    阅读:InternetSetOptionW 正文。大多数标志未实现。解决方法之一是阅读此调用的 Microsoft 文档并找到类似的,但这是相当不可能的。

    【讨论】:

      【解决方案3】:

      在 Wine 下调试您自己的应用程序。向 Wine 开发者发送反馈。

      例如: WINEDEBUG=+GDI wine ./HeroLab.exe

      【讨论】:

        【解决方案4】:

        最好的办法是实现一个日志文件,您可以在其中编写调试跟踪语句。添加代码以编写一行来指示您所在的位置、变量的值等。您可能需要进行多次迭代,添加许多日志记录语句,直到缩小问题发生的范围。

        使用启动应用程序的命令 (/D) 来激活日志记录。

        每次写入时通过关闭并重新打开日志文件来“刷新”日志文件。您需要这个,因为如果您的应用程序崩溃,它将无法到达将关闭日志文件的正常终止代码。

        让用户向您发送文件的副本。尽情享受尸检吧。

        请注意,Wine 很脆弱,并且会由于 Windows 允许的异常情况而崩溃。例如。 NULL 窗口句柄、无效窗口类等。这是改进代码的机会。

        我意识到这是旧的,并且 OP 已经继续前进,我希望它对其他有类似问题的人有所帮助s)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-05-14
          • 2018-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-09
          相关资源
          最近更新 更多