2012-09-20 17 views
5

Tengo un dll que he creado en Windows 7 (sistema operativo de 64 bits) en la plataforma 'Win32'. Por desgracia, al importar este archivo DLL en el código C#, me encuentro:C++ Dll en Dependency walker muestra IESHIMS.dll y MSVCR110.dll

"

se hizo un intento de cargar un programa con un incorrectos formato HRESULT: 0x8007000B

" se observa

Cuando utilicé DependencyWalker para esta DLL, muestra la dependencia IESHIMS.dll y MSVCR110.dll que no se pudo encontrar.

¿De dónde vienen estos dlls y por qué mi dll creado tiene dependencia sobre estos dos? Pl ayuda ¿cómo puedo entender esto?

Nota: He utilizado la plataforma x86 en mi código C#.

+0

. Hay una muy buena pista de que no ha logrado configurar correctamente la plataforma objetivo, el 99,9% de probabilidades en un sistema operativo de 64 bits. Obtenga una segunda opinión de la utilidad Corflags.exe, ejecútela desde el símbolo del sistema de Visual Studio y pase la ruta a su EXE. La opción 32BIT debe ser 1. –

+0

Resolví este 0x8007000B con una aplicación que se ejecuta en 32 bits yendo en la carpeta windows/syswov64 cambiando la versión 64 de MSVCR110.dll con la versión MSVCR110.dll de 32 bits. (Simplemente no olvide volver a colocar el 64 dll cuando haya ejecutado su aplicación) – JinSnow

Respuesta

1

Asegúrese de elegir x86 para la arquitectura de destino en las propiedades de su proyecto C#.

+0

Sí. Ya lo hice. he editado la publicación de arriba. –

2

Probablemente no tenga instalado el tiempo de ejecución C++. Download it e instálalo. Tienes que jugar un poco con las versiones de tiempo de ejecución. Hay bastantes versiones disponibles. Esto se ocupará de su problema MSVCR110.dll. No estoy seguro de por qué la dll muestra la dependencia de un dll de IE sin embargo.