2009-11-09 11 views

Répondre

1

Créez une application d'assistance 32 bits qui charge la DLL du serveur inproc, mais qui agit comme un serveur local.

Compilez le code de remplacement du proxy pour 64 bits. Ensuite, lorsqu'une application 64 bits essaie de charger votre ActiveX, au lieu d'utiliser un inproc 32 bits (qu'elle ne peut pas charger), elle chargera le serveur local 32 bits - un processus séparé - ce qui est légal.

Le talon de proxy qui est le code généré automatiquement à partir de votre IDL devrait bien se construire pour 64 bits.

+0

Cela ressemble beaucoup de travail. Je vais devoir créer un fichier .exe séparé, trouver comment l'enregistrer et le proxy/stub dans le registre. – sharptooth

+0

Thats tous les trucs standard cependant. L'alternative est de refactoriser votre COM dll pour construire - et travailler - en 64 bits. Vous ne pouvez simplement pas charger une DLL 32 bits dans un processus 64 bits, alors déterminer comment l'héberger dans un processus 32 bits est vraiment la seule façon d'éviter de reconstruire le contrôle en tant que contrôle 64 bits. –

+0

Oui, je comprends cela. Juste la solution que vous proposez semble beaucoup de travail par rapport à la simple mise en COM + - et ce n'est que quelques clics avec la souris. – sharptooth