2009-12-11 4 views
3

J'ai une application VB6 qui fait toujours référence à certaines anciennes bibliothèques VB5 (dll, vbr, tlb et ocx). Nous avons quelques problèmes étranges comme il ne peut pas lire le registre en utilisant advapi32.dll. J'ai essayé d'exécuter l'application avec les permissions UAC, mais toujours pas aller. Nous ne pouvons pas recompiler l'application car elle contient plusieurs contrôles et composants qui ne peuvent pas être téléchargés et ne sont plus pris en charge. Toutes les idées (à part une réécriture puisque nous travaillons déjà dessus) sont appréciées.Obtenir une application VB6 pour fonctionner sous Windows 7 Si vous ne pouvez pas recompiler

Pour ajouter, nous avons déjà essayé cette application en mode Windows XP. Cependant, voici mes "reproches" de faire cela:

  • Les fenêtres chargées en tant que vbFormCenter et vbModal sont centrées entre deux moniteurs. Même après l'avoir fait glisser sur l'un des moniteurs, il ne se souvient pas où le modal devrait être.
  • Lorsque vous essayez d'imprimer, au hasard, il faut jusqu'à 5 minutes pour qu'un travail crache. C'est parce que (ou du moins je pense que c'est la raison), la machine en mode XP charge aussi les imprimantes de l'hôte.
  • Une communication DCOM semble léthargique au hasard
  • Une imprimante branchée via USB ne peut être que sur l'hôte ou la machine virtuelle, et pas les deux car elle utilise un transit. Même ainsi, vous ne pouvez pas "forcer" une application pour permettre une imprimante attachée.
  • Les anciennes applications (VB5 et VB6) ne se terminent pas toujours lorsque Application.Exit est appelée. Vous ne savez pas pourquoi, mais vous pouvez ouvrir un formulaire et appeler le sous-titre Exit lorsqu'un bouton est cliqué et sur 25 fois, 10-20% du temps il ne ferme pas. Donc, il n'y a aucun moyen de montrer l'application en tant que sous-processus sur la machine hôte afin qu'elle puisse être détruite.

Oeuf. C'est juste un peu.

+0

Vous seriez beaucoup mieux si vous pouvez effectivement recompiler le programme. Cela semble aussi avoir besoin d'un fichier manifeste. Je suggère de localiser le nom des contrôles spécifiques et des composants qui ne peuvent pas être trouvés ainsi que les messages d'erreur spécifiques lorsque vous essayez de lire le registre. N'hésitez pas à nous contacter sur groups.google.ca/group/... Vous obtiendrez probablement beaucoup de réponses utiles dans ce forum. –

+1

http://groups.google.ca/group/microsoft.public.vb.general.discussion/topics?lnk=srg&hl=fr –

Répondre

2

VB 5.0 n'est pas pris en charge sur Windows 7, bien que VB 6.0 l'est, donc je suppose que c'est votre problème.

La solution consiste à exécuter une machine virtuelle Windows XP, et Windows 7 a un processus assez indolore pour ce faire en utilisant le mode xp.

Check out,

http://www.microsoft.com/windows/virtual-pc/download.aspx

+0

essayé et cela ne fonctionne pas correctement. Toutes les fenêtres se chargent au milieu de l'écran et se bloque pendant 5 minutes quand il essaie d'imprimer (car il charge les imprimantes de l'hôte, etc.). En outre, si vous disposez d'une configuration d'imprimante locale, vous ne pouvez pas forcer la connexion et même si vous le pouvez, la machine hôte ne peut pas l'utiliser. –

+0

Donc, vu que VB5 n'est pas supporté par window7, vous n'avez vraiment que deux options, trouver un moyen de faire fonctionner la machine virtuelle comme vous le souhaitez, ou revenir à Windows XP jusqu'à ce que votre ré-écriture soit Achevée. Désolé d'être le porteur de mauvaises nouvelles, bonne chance! – mattdlong

+0

C'est ce que je pensais. –

0

Cela peut être une question idiote, mais avez-vous essayé de l'exécuter en mode de compatibilité?

+0

Oui, ne fonctionne pas. –

0

Vous pouvez essayer d'utiliser une machine virtuelle Windows XP ... en supposant qu'elle n'a pas besoin d'être exécutée directement sur l'hôte.

+0

Voir mon commentaire ci-dessus. –

+0

Pas de PC virtuel ... essayez virtualbox ... Une fois la machine virtuelle créée et (avec la machine virtuelle éteinte), accédez à l'onglet "Détails" de la console VirtualBox. Cliquez sur le lien "USB Controller". Dans la fenêtre contextuelle, cochez la case "USB devices" et faites un clic droit sur l'icône USB "plus". Sélectionnez l'imprimante. Si l'imprimante n'apparaît pas, l'imprimante n'a peut-être pas été connectée et allumée lorsque vous l'avez mise sous tension. Après cela, vous devriez être en mesure d'utiliser l'imprimante via la virtualbox – drakaan

0

Une alternative à la machine virtuelle XP qui présente certains avantages est Parallels. C'est bon marché, robuste et offre un mode de transparence soignée de sorte que le programme s'exécutant dans la machine virtuelle semble fonctionner comme natif sur le bureau. J'ai utilisé Parallels sur mon ordinateur Windows 7 depuis qu'il est sorti pour exécuter plusieurs postes de travail XP pour le développement de logiciels clients hérités, et cela fonctionne un régal.

+1

Belle suggestion, mais préfère ne rien acheter. –

Questions connexes