Le jeudi 16/05/2013 15:12:57, Rafikosaure a écrit dans le message <news:******@communitybridge2.codeplex.com.windows_7> ce qui suit :
[...]
Vous avez bien compris ce que je voudrais faire : lancer un jeu conçu pour Windows 95/98 sous Windows 7. Avec le jeu "Pharaon", tout fonctionne parfaitement lorsque je l’exécute en mode de compatibilité Win 95/98. Mais pas avec l'extension du jeu ! Car lorsque je lance cette extension (qui s'appelle "Cléopâtre, reine du Nil") en mode de compatibilité Win 95/98, le jeu ne s'exécute pas, et je reçoit à la place ce message d'erreur : "Unable to load function : FT_Thunk (KERNEL32.dll)".
Ouh la !!!!!!
Cela signifie que cette extension fait appel au mécanisme de "thunking", qui consiste, à l'aide de bidouillages infâmes, à exécuter du code 32 bits à partir de code 16 bits!
J'ai pratiqué cela jadis ("SCANBIN"), et à côté de ça les bricolages de Mac Gyver c'est du "traditionnel" sans aucune imagination! ;-)
Ces fonctions de thunking ont été lancées il y a 20 ans, lorsque le 32 bits a été lancé avec NT3.1, afin de permettre aux développeurs (qui travaillaient sous des OS 16 bits tels que Windows 3.11) de concevoir des applis hybrides 16/32 bits (il y avait un ensemble appelé "Win32S" qui permettait d'exécuter du code 32 bits sous Windows 16 bits).
Depuis longtemps ces fonctions ont été retirées des DLL 32 bits, et cela ne me choque pas!
> J'ai suivi minutieusement votre
conseil relatif à l'installation en mode Win 95/98 (j'ai choisi le mode de compatibilité Windows 95), et les résultats sont les mêmes : "Pharaon" fonctionne une fois installé, puis l'extension "Cléopâtre reine du Nil" plante une fois installée avec toujours le même message d'erreur.
NORMAL!
Le mode compatibilité fait "croire" à l'appli qu'elle est sous un autre OS (au cas où elle demande la version de Windows au système), mais en gros ça s'arrête là! Elle ne peut pas, p.ex., simuler les DLL système de Windows 9x ...
> Je me demande s'il est possible de réparer de façon simple les problèmes
spécifiques à des DLL comme Kernel32.dll...
Il n'y a RIEN à réparer car RIEN n'est cassé!
Ce que tu demandes (= faire tourner nativement une appli Win9x sous Windows 7) est tout simplement impossible!
(Ou alors la KERNEL32.DLL ne ferait pas 1 Mo, mais 10 ou 50 fois plus!)
> Si quelqu'un sait, dites-moi svp
Je ne vois que la virtualisation de Win9X (dans VPC, VirtualBox, VMWare, ou VMLite,..) sous Win7.
Cela fonctionne très bien!
May the Force be with You! La Connaissance s'accroît quand on la partage
Jean-Claude BELLAMY
http://www.bellamyjc.fr ou http://www.bellamyjc.org