用户报告我们的某个应用程序无法在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下运行?
感谢。
答案 0 :(得分:1)
好的葡萄酒处于不断发展的状态,你需要找出一些东西;
- 您使用的是哪种版本的葡萄酒1.1.38是撰写本文时的最新版本,您可能会使用旧版本来解决您遇到的问题。
- 什么应用有问题?您是否搜索过应用程序数据库? http://appdb.winehq.org/您可以在Wine下找到运行应用程序的当前状态以及用户遇到的任何问题。
答案 1 :(得分:0)
http://source.winehq.org/source/dlls/wininet/internet.c
阅读:InternetSetOptionW正文。大多数标志都未实现。修复的方法之一是阅读Microsoft此文档的文档并找到相似的内容,但这是不可能的。
答案 2 :(得分:0)
在Wine下调试您自己的应用程序。向Wine开发者发送反馈。
例如: WINEDEBUG = + GDI wine ./HeroLab.exe
答案 3 :(得分:0)
最好的办法是实现日志文件,您可以在其中编写调试跟踪语句。添加代码以写入指示您所在位置的行,变量的值等。您可能需要执行多次迭代,添加许多日志记录语句,直到您缩小问题发生的位置。
使用启动应用的命令(/D
)上的开关激活日志记录。
通过每次写入时关闭并重新打开日志文件来“刷新”日志文件。您需要这样做,因为如果您的应用程序崩溃,它将无法到达日志文件将被关闭的正常终止代码。
让用户向您发送该文件的副本。玩尸检很开心。
请注意,Wine很脆弱,并且会因Windows容忍的不规则性而崩溃。例如。 NULL窗口句柄,无效的窗口类等。这是一个改进代码的机会。
(我意识到这已经过时了,OP已经开始了,我希望它可以帮助那些有类似问题的人。)