Je travaille sur une application qui contient plus de quelques DLL écrites en VB6. Le code VB6 inclut les DLL COM et les contrôles ocx. Le reste du code est en C++ et C#. On m'a assigné la tâche de rendre la base de code d'application compatible avec les architectures 64 bits. Des charges de matériel d'aide sont disponibles pour le code C/C++ donc ce n'est pas un problème à portée de main. Mais il n'est pas facile de réécrire tout ce code vb6 en .net ou dans une autre langue pour le rendre compatible avec 64bit. Je ne comprends pas non plus toute la logique sous-jacente, donc supposons simplement que la réécriture est hors de question. D'autre part, nous savons tous que les dll VB6 ne fonctionneront pas dans un environnement 64 bits. Alors, quelles sont mes options.Chargement/interaction avec une DLL COM vb6 à partir d'une application 64 bits
1) convertir chaque dll en un EXE qui sera chargé en 32 bits et il peut interagir avec mon reste d'application 64 bits via des interfaces COM. Prévoyez-vous des problèmes avec cette approche?
2) Je modifie le registre et charge toutes les DLLs VB6 hors processus, les charge dans dllhost. 3) Faire un seul exe 32 bits, renvoyer tous ces dll VB6 dans cet exe et charger cet exe dans l'espace d'adressage 32 bits et la partie 64 bits de mon application communique avec l'exe 32 bits.
Le problème majeur qui vient à l'esprit avec toutes les approches mentionnées ci-dessus est quoi faire avec les contrôles OCX ????
Des idées? Si aucune nouvelle idée que celle mentionnée ci-dessus ne sera préférée par vous et pourquoi?
Avez-vous compris comment faire les communications entre 64-32 en utilisant COM? Il semble toujours qu'il y aurait une sorte de décalage. –
Nopes, je n'ai pas encore commencé d'expérimentation mais je mettrai à jour dès que je rencontrerai un succès ou un échec. – Paragon
Une telle communication devrait normalement fonctionner normalement - en particulier lorsque toutes les interfaces sont compatibles avec l'oleautomation, comme dans votre cas. –