J'ai un projet qui doit être compilé et exécuté en mode 64 bits. Malheureusement, je dois faire appel à une DLL qui n'est disponible qu'en mode 32 bits, donc je ne peux pas tout héberger dans un projet 1 Visual Studio. Je travaille pour trouver le meilleur moyen d'envelopper la DLL 32 bits dans son propre exe/service et émettre des appels à distance (bien que sur la même machine) à cet exe/service de mon application 64 bits. Mon OS est Win7 Pro 64 bits.Façons d'accéder à une DLL 32 bits à partir d'un exe 64 bits
Les appels requis pour ce processus 32 bits sont plusieurs dizaines par seconde, mais le volume de données est faible. Il s'agit d'une application d'analyse d'image en temps réel, ce qui fait que le temps de réponse est critique malgré le faible volume. Beaucoup d'envoi/réception de primitives uniques.
Idéalement, j'hébergerais un service WCF pour héberger cette DLL, mais dans un système d'exploitation 64 bits, on ne peut pas forcer le service à s'exécuter en tant que x86! Source. C'est vraiment dommage car j'ai chronométré les appels de fonction au service WCF pour être seulement 4ms sur ma machine.
J'ai expérimenté avec des tubes nommés est .net. Je les ai trouvés 40 à 50 fois plus lent que WCF (inutilisable pour moi).
D'autres options ou suggestions pour la meilleure façon d'aborder mon puzzle?
Voir [cette réponse] (http://stackoverflow.com/a/12938217/184528) pour une liste plus complète des techniques d'accès DLL 32 bits à partir d'applications 64 bits . – cdiggins