2009-08-26 5 views
2

Un utilisateur signale qu'une de nos applications ne fonctionne pas sous WINE. Il court jusqu'à ce qu'il passe devant une certaine forme, puis se fige. WINE donne la sortie suivante:Erreur WINE lors de l'exécution de l'application Windows

~/.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 

Quelqu'un peut-il m'expliquer ces messages? Je suppose que ce sont des messages de WINE indiquant que nous appelons des fonctions de manière que WINE ne supporte pas, mais notre code n'appelle pas du tout CreateBitmapIndirect.

Comment pouvons-nous localiser la source de ce problème, et réparer notre application afin qu'elle fonctionne sous WINE?

Merci.

+5

Vous feriez probablement mieux d'entrer directement en contact avec les développeurs de WINE. Ils seraient probablement très réceptifs à quelqu'un qui est intéressé à s'assurer que leur application fonctionne dans WINE, et sauraient comment aller au fond d'un tel message d'erreur. –

+0

Est-ce que http://forum.winehq.org/ est le seul endroit pour ça?J'ai regardé là, mais j'ai pensé que j'essaierais ici d'abord dans l'espoir que quelqu'un pourrait au moins m'expliquer l'erreur. – Colen

+0

Il y a aussi la liste de diffusion d'un développeur, voir: http://www.winehq.org/forums. Bien que je ne sois pas sûr si la question serait plus appropriée dans le forum des utilisateurs ou la liste des développeurs, car c'est un peu entre les deux sujets. –

Répondre

1

Okay Le vin est dans un état constant de développement, vous devez trouver quelques petites choses;

-Quelle version du vin utilisez-vous? 1.1.38 est le dernier en date au moment de l'écriture, il y a de bonnes chances que vous utilisiez une ancienne version pour résoudre le problème que vous rencontrez.
-Quelle application rencontre des problèmes? Avez-vous recherché la base de données d'application? http://appdb.winehq.org/ Vous pouvez trouver l'état actuel de l'exécution de votre application sous Wine et des problèmes rencontrés par les utilisateurs.

0

Déboguez votre propre application sous Wine. Envoyer des commentaires aux développeurs Wine.

Par exemple: WINEDEBUG = + vin GDI ./HeroLab.exe

0

Votre meilleur pari est de mettre en œuvre un fichier journal où vous pouvez écrire le débogage des instructions trace. Ajoutez du code pour écrire une ligne indiquant où vous êtes, la valeur des variables, etc. Vous devrez peut-être faire plusieurs itérations, ajouter de nombreuses instructions de journalisation, jusqu'à ce que vous affiniez où le problème se produit.

Activez la journalisation avec un commutateur sur la commande qui lance votre application (/D).

'Vider' le fichier journal en le fermant et en le réouvrant chaque fois que vous y écrivez. Vous en avez besoin car si votre application tombe en panne, elle n'atteindra pas le code de terminaison normal dans lequel les fichiers journaux seront fermés.

Demande à l'utilisateur de vous envoyer une copie du fichier. Amusez-vous avec l'autopsie.

Notez que Wine est fragile et va planter en raison des irrégularités que Windows tolère. Par exemple. Poignées de fenêtre NULL, classes de fenêtres invalides, etc. Ceci est une opportunité d'améliorer votre code.

(Je me rends compte que c'est vieux et l'OP a bougé, peu j'espère qu'il sera utile à d'autres avec le même problème s).

Questions connexes