example - Cargue la biblioteca DLL de 32 bits en la aplicación de 64 bits
loadlibrary example (3)
¿Hay alguna manera de cargar una biblioteca DLL de 32 bits (algo con el mismo uso que LoadLibrary)? Me gustaría usar esa función junto con GetProcAddress.
Miré WOW, pero no parece ofrecer la funcionalidad. La funcionalidad debería existir, ya que las herramientas como DependencyWalker son capaces de leer los símbolos de un dll de 32 bits a pesar de sus 64 bits.
Gracias
Hay una diferencia entre leer un ejecutable de 32 bits y ejecutar código dentro de un ejecutable de 32 bits. No creo que Windows ofrezca ninguna funcionalidad para hacer eso.
La única forma en que probablemente pueda hacer eso es crear un proceso de 32 bits que cargue el dll y luego realice una comunicación entre procesos para pasar los resultados entre los dos procesos.
Lo sentimos, pero solo puede cargar un archivo DLL de 32 bits en un proceso de 64 bits cuando está cargando el dll como un archivo de datos. No puedes ejecutar el código. http://support.microsoft.com/kb/282423
Microsoft recomienda que utilice el COM entre procesos para usar código de 32 bits con una aplicación de 64 bits. Aquí hay un artículo que explica el proceso http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/ No es divertido.
Si lo único que quieres hacer es obtener recursos de él, puedes cargarlo como un archivo de datos:
LoadLibraryEx(exeName, NULL, LOAD_LIBRARY_AS_DATAFILE);
A continuación, llame a FindResource
como de costumbre.