Windows NO PUEDE cargar un dll de 32 bits en un proceso de 64 bits; esta es una limitación que no puede eludir. Esto significa que si su DLL de 32 bits hace cualquier P/Invocación a otro 32 bits DLLS (o utiliza cualquier .net DLLS de 32 bits), no tendrá suerte (tendrá que ejecutar todo el sitio web en 32 bits).
No está del todo claro cuando funciona y cuando no funciona. Aquí están las explicaciones:
- x86 - 32 bits - No se puede cargar en un proceso de 64 bits.
- x64 - 64 bits - No se puede ejecutar en una máquina de 32 bits.
- AnyCPU - dual: se puede cargar y ejecutar en ambos entornos.
En términos de Cualquier CPU:
- proceso de 64 bits en la máquina de 64 bits - DLL se carga como de 64 bits.
- Proceso de 32 bits en una máquina de 32 bits - La DLL se carga como 32 bits.
- Proceso de 32 bits en una máquina de 64 bits - La DLL se carga como 32 bits.
En la mayoría de los casos está bien dejarlo como AnyCPU. Sin embargo, como dije, si está usando cualquier DLL nativo o .Net de 32 bits, necesitará hacer que toda la aplicación sea de 32 bits (y no hay nada que pueda o Microsoft pueda hacer al respecto).
¿Es esta una DLL puede recompilar? – kbyrd