x64 x32 visual microsoft descargar visual-c++ linker 32bit-64bit visual-studio-2010

visual-c++ - x32 - microsoft visual c++ 2018



¿Por qué el proyecto MSVC 2010 de 32 bits se vincula a Kerbit32.dll de 64 bits? (3)

Dependency Walker no está utilizando la misma ruta de búsqueda que el sistema operativo. Tiene sus propias rutas de búsqueda para tratar de encontrar archivos DLL. Puede ver esto yendo a "Opciones -> Configurar orden de búsqueda del módulo ..."

Desafortunadamente, sus rutas de búsqueda no incluyen "C: / Windows / SysWow64" (la ubicación de la versión de 32 bits para Kernel32.dll)

Esta es la razón por la cual Dependency Walker piensa incorrectamente que su aplicación está mezclando x64 DLL con su aplicación x86.

Si arregla la orden de búsqueda para incluir SysWow64 y elimina todas las referencias al directorio de System32. Este error debería desaparecer.

Una mejor forma de comprobar qué ventana de salida del depurador de Visual Studio o WinDbg cuando se ejecuta su aplicación. Enumerará la ruta completa de la DLL a medida que se carguen.

Tengo un proyecto de DLL Win32 (32 bits) que crea y enlaces sin error. La DLL no se carga en un proceso de 32 bits. Usando DependencyWalker, veo que el DLL es de 32 bits pero se ha vinculado con las bibliotecas de 64 bits para kernel32, msvcr100d, ws2_32 y msvcr100.

DependencyWalker también muestra un error

Error: Modules with different CPU types were found.

Me he quedado perplejo con este problema durante un par de horas y no puedo entenderlo. ¿Alguien más ha experimentado esto y ha encontrado una solución?


Consulte las preguntas frecuentes del sitio web de dependencia. http://www.dependencywalker.com/faq.html

Q.Will Dependency Walker work with 64-bit modules?

necesita usar la versión x86 para los módulos de 32 bits, x64 para los módulos de 64 bits. Significa que necesita tener 2 copias en el sistema operativo de 64 bits y usarlas en consecuencia.

puede usar el registro de Windows para crear el menú contextual a fin de guardar su problema de esta manera.

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT/dllfile/shell] [HKEY_CLASSES_ROOT/dllfile/shell/View Dependencies] [HKEY_CLASSES_ROOT/dllfile/shell/View Dependencies/command] @="////psf//Public//Library//DEPE~K17//depends.exe /dde" [HKEY_CLASSES_ROOT/dllfile/shell/View Dependencies/ddeexec] @="[open(/"%1/")]" [HKEY_CLASSES_ROOT/dllfile/shell/View Dependencies(32bit)] [HKEY_CLASSES_ROOT/dllfile/shell/View Dependencies(32bit)/command] @="////psf//Public//Library//DEPE~K17//x86//depends.exe /dde" [HKEY_CLASSES_ROOT/dllfile/shell/View Dependencies(32bit)/ddeexec] @="[open(/"%1/")]" [HKEY_CLASSES_ROOT/exefile/shell] [HKEY_CLASSES_ROOT/exefile/shell/View Dependencies] [HKEY_CLASSES_ROOT/exefile/shell/View Dependencies/command] @="////psf//Public//Library//DEPE~K17//depends.exe /dde" [HKEY_CLASSES_ROOT/exefile/shell/View Dependencies/ddeexec] @="[open(/"%1/")]" [HKEY_CLASSES_ROOT/exefile/shell/View Dependencies(32bit)] [HKEY_CLASSES_ROOT/exefile/shell/View Dependencies(32bit)/command] @="////psf//Public//Library//DEPE~K17//x86//depends.exe /dde" [HKEY_CLASSES_ROOT/exefile/shell/View Dependencies(32bit)/ddeexec] @="[open(/"%1/")]"


Respuesta corta: Use Dependency Walker para x86 para cosas x86.

Respuesta larga: Inicialmente usé Dependency Walker para x64 en el sistema operativo MS Windows 7 y encontré los obstáculos que usted tenía. Luego seguí el consejo de MerickOWA sobre el cambio de las rutas de búsqueda (gracias MerickOWA). Aunque todavía tenía un puñado de dependencias que causaban "Error: se encontraron módulos con diferentes tipos de CPU".

En lugar de averiguar cómo configurar Dependency Walker para buscar las DLL x86 en rutas de aspecto bizarro como "c: / windows / winsxs / amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_2b24536c71ed437a / GDIPLUS.DLL" correctamente, utilicé Dependency Walker para x86 . Trabajó como un encanto para mí!