Go y Golang

Solución al error 0xc00007b en Windows

Hoy vamos a hablar sobre un error que me trajo muchos problemas en las últimas horas. Se trata del error 0xc00007b y ocurría al usar mi plugin para impresoras térmicas versión 3.

Por ello es que en este post te mostraré la causa y la posible solución de ese problema, ya sea para mi plugin o para cualquier otro programa que intentes usar.

Solo para que quede claro, el error de mi plugin ya está arreglado, pero quiero documentar esto por si a alguien más se le presenta esto en el futuro.

Error 0xc00007b

Este error se da porque una dependencia cargada en tiempo de ejecución no pudo ser cargada. Algunas razones son:

  • No existe un DLL o dependencia que el programa necesita (por ello es que a veces se recomienda reinstalar el programa)
  • Existe la DLL, pero es para 32 bits y quiere ser cargada por un programa de 64 bits, o viceversa.

Explicado con palabras simples, puede que el programa necesite una DLL de 64 bits pero estés usando un Sistema operativo de 32 bits, o viceversa. También puede que simplemente no hayas instalado la DLL o que no se encuentre junto al programa.

Solución

La solución es buscar la dependencia faltante y asegurarnos de que es la que corresponde a nuestra arquitectura.

A veces cuando nos falta una DLL lo primero que hacemos es buscar en internet, y aunque sí existen, no son para nuestra plataforma.

Por ello es que hay que averiguar si tenemos un sistema de 32 o 64 bits y buscar o descargar programas específicamente para esa arquitectura.

Mi problema y solución

Como comenté al inicio, el problema aparecía cuando los usuarios descargaban mi plugin.

Primero les pedía la DLL, la libiconv-2.dll específicamente. Entonces la descargaban y renombraban, pero como en internet solo está la de 32 bits (o al menos en los sitios que yo busqué) ahora les daba el error 0xc00007b.

Lo peor es que yo no podía diagnosticar el problema porque a mí no me aparecía ese error (ya sabes, en mi computadora funciona bien). Gracias a unos usuarios pude comenzar a buscar y encontré la siguiente pregunta en StackOverflow: https://stackoverflow.com/questions/10492037/the-application-was-unable-to-start-correctly-0xc000007b

Ahí no estaba mi solución, pero alguien dijo:

I tried all the things specified here and found yet another answer. I had to compile my application with 32-bit DLLs. I had built the libraries both in 32-bit and 64-bit but had my PATH set to 64-bit libraries. After I recompiled my application (with a number of changes in my code as well) I got this dreaded error and struggled for two days. Finally, after trying a number of other things, I changed my PATH to have the 32-bit DLLs before the 64-bit DLLs (they have the same names). And it worked. I am just adding it here for completeness.

Y recordé que había buscado la DLL en mi sistema en todos los lugares posibles… en System32, en SysWOW64, la GOPATH y varias rutas excepto en una: la de MinGW. Lo de 32 y 64 bits me trajo ese recuerdo ya que necesitaba el compilador GCC de 64 bits y no se me había ocurrido buscar ahí.

Entonces fui a donde está mi instalación de MinGW de 64 bits y al buscar ahí estaba la DLL, específicamente en C:\msys64\mingw64\bin.

Al hacerle un file me dijo que la librería es para 64 bits. Entonces lo que hice fue distribuir esa DLL junto con mi plugin, y problema arreglado.

Encontrando DLL faltante para error 0xc00007b

Por cierto, agradezco a Martin C., Fer y Paco por prestarme sus computadoras para poder probar y comprobar que el error ya estaba solucionado.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.