Entrada
Buen dia ¿Está familiarizado con la excepción 0xc00007b ? Desde la transferencia del motor de rayos X a x64, ha habido muchos informes sobre el problema 0cx00007b. En el 90% de los casos, esto fue un problema con la falta de un controlador OpenAL de 64 bits.
Ideas para resolver el problema.
Al principio, respondimos constantemente que necesita instalar el controlador, después de un par de meses escribimos un FAQ sobre el inicio y posibles problemas. Pero tales informes no desaparecieron, a las personas en nuestro CIS no les gusta particularmente leer, por lo que decidimos resolver el problema radicalmente: instale el controlador debajo del motor, si no hay ninguno.
Paso 1: iniciar el programa cuando dll no es suficiente
La forma más fácil de conectar bibliotecas entre sí es construir ( comentario pragma ), pero en nuestro caso esto no se puede hacer.
Por lo tanto, paso 1: enlace explícito o extern "C"
.
Lo que necesitamos: desatar exe de las bibliotecas del motor. Esto se hace de la siguiente manera:
1) Eliminamos la función para iniciar el motor en la biblioteca dinámica:
extern "C" --
2) Llame a la función desde nuestro exe:
using RunFunc = void(__cdecl*)(const char*);
Paso 2: verificación del conductor
Bueno, todo es simple, tenemos un sistema (tal vez alguien se sorprenderá, pero el sistema operativo no siempre está en la sección C :) y verifique el dll en la carpeta del controlador:
Paso 3: archivo no encontrado
En primer lugar, debemos pedirle al administrador los derechos de usuario, porque tendrá que trabajar con el directorio del sistema:
Etapa dos: copia la biblioteca al sistema
{ ...
Conclusión
Por supuesto, el método es muy divertido, pero adecuado para tales proyectos. ¡Buena suerte a todos!