Error al trabajar con funciones de bibliotecas cargadas dinámicamente
- 2280
- 454
- Jerónimo Araña
La estructura de los recursos de la biblioteca del sistema operativo Windows se puede representar de la siguiente manera:
- Al principio, en el nivel más bajo, existen "interrupciones" del sistema en sí, cuyas "piernas" están creciendo desde las primeras versiones de las ventanas, además, todo, desde esa MS-DOS "anciana" (anciana "(anciana" ( Sí, en ese nivel hay casi 30 años que nada en Windows ha cambiado). El acceso a esta biblioteca es fácilmente a través del ensamblador en el mando de la interrupción (interrupción), de ahí la "interrupción", aunque de hecho, este nivel tiene poca relación con los subprogramas de procesamiento de interrupción.
- Nos elevamos un paso más alto y llegamos a Winsdk: un conjunto de software de desarrollador de Windows. Este es un tipo de análogo de todas las mismas "interrupciones", pero ya tiene en cuenta los detalles de la organización de Windows: el desarrollador obtiene acceso a esta biblioteca a través del código habitual del lenguaje de alto nivel utilizado por él.
La única dificultad es que la terminología de la descripción de Winsdk difiere de la terminología de la descripción del lenguaje de programación más aplicado, sus funciones (tome el mismo constructor o Delphi). Afortunadamente, todas las funciones de Winsdk se describen en detalle en los propios desarrolladores (de hecho, no hay nada que ver con ellas, su popularidad es tan grande).
Las funciones WINSDK se recopilan en los archivos de bibliotecas conectadas dinámicamente (literalmente cargadas) - Dynamic Lobray (DLL). El usuario de una biblioteca de este tipo no necesita saber la dirección de la función interna: es suficiente para él conocer el nombre de la función y tener la confianza de que la función en la biblioteca es. Los puntos de entrada a las funciones se determinan en la descripción de la biblioteca en sí.
- También nos elevamos más alto y estamos en bibliotecas de programas de supervisión a través de Windows. Una de las superestructuras más famosas es el paquete gráfico Directx. Aquí está la misma organización: los mismos archivos DLL.
Aquí con una de las bibliotecas DirectX y el error D3D11 está asociado.DLL: almacena las funciones de mostrar modelos gráficos volumétricos.
Pequeñas aclaraciones
Aquí debe comprender que cuando un mensaje simple "Aparece el error D3D11 en la pantalla.Dll ", este no es un mensaje muy correcto, no refleja con precisión la esencia del problema. A veces hay un mensaje sobre el error "podría crear un dispositivo D3D11": cómo solucionarlo, tal error en sí mismo puede ayudar a poco.
Más precisamente, este mensaje tendría que verse como "error al ingresar a la función XYZ, en la biblioteca D3D11.DLL "o más simple -" Función XYZ en la biblioteca D3D11.Dll no está definido ".
Otra cosa es que los desarrolladores de aplicaciones a menudo no se molestan con las aclaraciones y dan precisamente una versión simple, "indefinida" de la naturaleza del error que ha surgido. Pero esto no cambia la esencia. Las razones principales de la falla, o la biblioteca D3D11.DLL está ausente, como una opción - D3D11.DLL no se encontró, o no contiene la función necesaria, o se dañó para que la función sea inaccesible.
Corrección del error
Corrección de un error de acceso a la función en D3D11.DLL consiste en reorganizar la biblioteca en sí. DLL - Código ejecutable, ingrese dicho archivo y no funcionará para editarlo. Además, el archivo se refiere a la 11ª versión del paquete DirectX.
Por lo tanto, la primera forma de eliminar el error es reorganizar el paquete DirectX 11. Este método es simple y ha sido revisado durante mucho tiempo, lo principal es solo encontrar la versión de trabajo de la superestructura en sí, es mejor hacerlo en el sitio web oficial de Microsoft.
Instalación DirectX en Windows
Otra forma es reorganizar solo el archivo D3D11 en sí.Dll. Esto se puede hacer utilizando una utilidad especializada de archivos DLL.com, que es gratuito y disponible en el sitio del mismo nombre.
Entonces, instale y inicie los archivos DLL.
Busque el archivo DLL en el programa DLL-Files.Comunicarse
En la barra de búsqueda ingresamos "d3d11.Dll ". Después de encontrar la biblioteca, hacemos clic en "instalar".
Instalación del archivo DLL en el programa DLL-Files.Comunicarse
Si está acostumbrado a hacer todo usted mismo, entonces el problema se puede resolver manualmente, esta es la tercera forma. Para usarlo, descargue el archivo D3D11.Dll y colóquelo en la carpeta del sistema correcto. Aquí debe tener cuidado, ya que esta carpeta en diferentes versiones de Windows es diferente (en los ejemplos se supone que el sistema está instalado en el disco "C:", si este no es el caso, entonces el disco debe ser apropiado )
- En versiones Windows XP, Vista, 7, 8, 8.1 y 10 - C: \ Windows \ System32;
- en Windows 95, 98 y yo - C: \ Windows \ System;
- En Windows NT y 2000 - C: \ Winnt \ System32.
Tenemos en cuenta, si también hay una versión del sistema para un procesador de 64 bits, entonces la carpeta final para nuestro archivo es en cualquier caso: "SYSWOW64".
El censo de archivo a la carpeta aún no proporciona trabajar con ella. Ahora debe registrarse en el Registro del Sistema de Windows. Para hacer esto, realizamos comandos a través de la ventana (inicio/menú principal/ejecutar) comando: regsvr32 d3d11.Dll.
Conclusión
La solución de la gran mayoría de los problemas asociados con las bibliotecas externas cargadas dinámicamente del sistema operativo Windows a menudo se asocia simplemente con la reorganización de la biblioteca en sí, o independientemente, o mediante un paquete común (en nuestro ejemplo: DirectX 11).
Es posible instalar en el archivo DLL y manualmente, con una simple copia en la carpeta deseada. Pero, en primer lugar, necesitas saber esta carpeta. Y, en segundo lugar, dicho archivo deberá registrarse en el registro del sistema de Windows. Aquí no puede prescindir de los servicios públicos oficiales con el registro del sistema en sí.
Si ha encontrado tal error, escriba sobre su experiencia en los comentarios.
- « Cómo resolver el problema cuando Avira no está actualizado
- Juegos de Android en PC usando el emulador LeapDroid »