2010-05-01 3 views
1

J'utilise l'API virtualbox qui utilise COM sur les fenêtres. Si vous avez un système d'exploitation 64 bits, il installera la version 64 bits et les interfaces COM seront accessibles aux clients 64 bits, mais pas aux 32 bits. On me dit que c'est une limitation COM mais je l'ai vu ways d'utiliser dll32 « publier » 32 interfaces de bits sur le registre, de sorte que 64 processus de bits peuvent appeler ces serveurs COM, mais je ne trouve pas l'inverse, l'accès à 64 bits interfaces à partir de processus 32 bits.64 bits objets COM de 32 bits traiter

Si je n'étais pas très clair, je crois que cette personne veut obtenir quelque chose de similaire: http://www.codeproject.com/Forums/1648/COM.aspx?fid=1648&df=90&mpp=25&sort=Position&select=1702805&tid=1702805

Répondre

4

En cours thunking travaillerai toujours que seulement de bitness haut vers le bas, pas l'inverse. Lorsque Win32 est sorti, un processus de 32 bits pouvait réduire la taille d'une DLL de 16 bits, mais il était impossible de convertir une DLL de 32 bits en un processus de 16 bits. La même chose est vrai maintenant, une dll 32 bits peut être thunked dans un processus 64 bits, mais il n'y a aucun moyen d'un dll 64 bits peut être thunked dans un processus 32 bits (à l'exception du WOW64 emulator DLLs: Wow64.dll, Wow64win.dll et Wow64Cpu.dll). Si vous souhaitez charger un fichier COM in-process-dll 64 bits, vous avez besoin d'un chargeur 64 bits hors processus et votre application 32 bits peut communiquer avec le chargement et transmettre les paramètres nécessaires à l'appel, et recevoir le résultat.

Pour les contrôles hors processus 64 bits COM serveurs locaux dont vous aurez besoin des DLL proxy 32 bits, voir Interprocess Communication Between 32-bit and 64-bit Applications.

Questions connexes