WINE ошибка при запуске приложения Windows - PullRequest
2 голосов
/ 26 августа 2009

Пользователь сообщает, что одно из наших приложений не работает под 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?

Спасибо.

Ответы [ 4 ]

1 голос
/ 12 февраля 2010

Ладно Wine находится в постоянном развитии, вам нужно выяснить несколько вещей;

-Какую версию Wine вы используете, 1.1.38 является самой последней на момент написания, скорее всего, вы используете старую версию, в результате которой проблема, с которой вы столкнулись, была исправлена.
-Какое приложение имеет проблемы? Вы искали базу данных приложений? http://appdb.winehq.org/ Вы можете узнать текущее состояние запуска вашего приложения под Wine и любые проблемы, с которыми сталкивались пользователи.

0 голосов
/ 15 декабря 2017

Лучше всего внедрить файл журнала , в котором вы можете написать отладочные операторы трассировки. Добавьте код, чтобы написать строку, указывающую, где вы находитесь, значение переменных и т. Д. Возможно, вам придется выполнить несколько итераций, добавить много операторов регистрации, пока вы не сузите место возникновения проблемы.

Активируйте ведение журнала с помощью переключателя на команду, запускающую ваше приложение (/D).

«Очистить» файл журнала, закрывая и открывая его каждый раз, когда вы пишете в него. Вам это нужно, потому что в случае сбоя вашего приложения оно не достигнет нормального кода завершения, при котором файлы журнала будут закрыты.

Попросите пользователя отправить вам копию файла. Веселитесь с вскрытием.

Обратите внимание, что Wine хрупок и будет зависать из-за ошибок, которые допускает Windows. Например. Дескрипторы окон NULL, недопустимые классы окон и т. Д. Это возможность улучшить ваш код.

( Я понимаю, что это старое, и ОП продолжил, но я надеюсь, что это поможет другим с подобной проблемой с).

0 голосов
/ 14 июня 2010

Отладка вашего собственного приложения под Wine. Отправить отзыв разработчикам Wine.

Например: WINEDEBUG = + GDI wine ./HeroLab.exe

0 голосов
/ 14 июня 2010

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

Прочитайте: InternetSetOptionW body. Большинство флагов не реализованы. Один из способов исправить это прочитать документацию Microsoft по этому вызову и найти аналогичный, но это довольно невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...