stringtranslate.com

Capa de Microsoft para Unicode

Microsoft Layer para Unicode ( MSLU ) es una biblioteca de software para versiones heredadas de Windows, que simplifica la creación de programas compatibles con Unicode en Windows 9x ( Windows 95 , Windows 98 y Windows Me ). También se le conoce como UnicoWS ( Unicode para sistemas Windows 95/98/Me ) o por su nombre de archivo , UNICOWS.DLL .

Microsoft lo describió como proporcionar "una capa sobre la API Win32 en Windows 95/98/Me para que un desarrollador de software pueda escribir una única versión Unicode de su aplicación y ejecutarla correctamente en todas las plataformas". [1] Anteriormente, los desarrolladores tenían que proporcionar dos versiones separadas de una aplicación o realizar traducciones de cadenas complejas y decisiones de API en tiempo de ejecución.

En la actualidad, UnicoWS se puede utilizar para compilar software más nuevo, que a menudo espera soporte Unicode, para versiones heredadas de Windows. [2] UnicoWS también se puede utilizar en el momento del enlace para compilar software en lenguajes que no existían al mismo tiempo que Windows 9x y que requieren soporte Unicode, como Rust . [2]

Existen alternativas, entre ellas OPENCOW.DLL , "La capa abierta para Unicode para Windows", una reimplementación gratuita ( con licencia MPL 1.1/ GPL 2.0/ LGPL 2.1) de MSLU de Mozilla .

Disponibilidad

MSLU se anunció en marzo de 2001 y estuvo disponible por primera vez como una capa de compatibilidad para el código compatible con Unicode escrito para el entonces nuevo Windows XP RC1 en la edición de julio de 2001 de Platform SDK de Microsoft . Esto generó críticas de los desarrolladores que consideran que era " demasiado tarde ", ya que se lanzó mucho después del pico de popularidad de Windows 9x y sólo un mes antes del lanzamiento a fabricación de Windows XP. [3] A MSLU se le dio el nombre clave Godot , una referencia a Esperando a Godot , una obra centrada en el fracaso de un hombre llamado "Godot" en llegar y la interminable espera por él, porque se pensó en tal capa de compatibilidad Unicode, incluso dentro. Microsoft... debería haber llegado hace mucho tiempo. [3]

Cómo funciona

Normalmente, la API de Windows proporciona versiones A( códigos de escape ANSI y caracteres ASCIIW ) y ( caracteres "anchos" ) de la mayoría de las subrutinas . En Windows 9x, solo Ase implementan las versiones y al intentar llamar a una Wversión fallará con un código de error que indica que la función no está implementada. En la línea de sistemas operativos Windows NT , se implementan ambas versiones (sin embargo, el sistema operativo generalmente solo implementa internamente la Aversión de forma nativa, y la versión suele ser una traducción de la versión).WWAW

Al agregar UNICOWS.LIB a la línea de comandos del enlace antes de KERNEL32.LIB , ADVAPI32.LIB o cualquier otra biblioteca de enlaces del sistema Win32 compatible, el vinculador resolverá los símbolos a los que se hace referencia con los proporcionados por UNICOWS.LIB .

Cuando se llama a una función de caracteres anchos por primera vez en tiempo de ejecución, el código auxiliar de función en UNICOWS.LIB primero recibe el control y verifica si se está ejecutando en un sistema Windows 95/98/Me:

Debido a esta técnica, cuando una aplicación está vinculada a MSLU, sólo los sistemas Windows 95/98/Me necesitarán confiar en UNICOWS.DLL en tiempo de ejecución, y en todas las demás versiones de Windows sólo hay una ligera penalización en el rendimiento la primera vez que se ejecuta. se llama la función.W

Un problema común que se produce cuando algunos paquetes de actualización o programas de desinstalación cambian el nombre o eliminan cualquiera de las bibliotecas OLE ( OLEACC.DLL , OLEDLG.DLL ), que son dependencias de UNICOWS.DLL . [4] Esto da como resultado que algunas aplicaciones, como OpenOffice.org , muestren un error con el mensaje "La aplicación no puede iniciarse porque no se puede encontrar una de las bibliotecas requeridas". Esto ocurre incluso si UNICOWS.DLL está instalado en el sistema, ya que no puede iniciarse sin sus dependencias (consulte también DLL hell ).

Referencias

  1. ^ "La capa de Microsoft para Unicode en sistemas Windows 95/98/Me". Portal Global de Desarrollo e Informática . Microsoft . Archivado desde el original el 16 de abril de 2003 . Consultado el 25 de abril de 2019 .
  2. ^ ab Duda, Dennis (26 de mayo de 2020). "Compilar binarios de Rust para Windows 98 SE y más: un viaje". seri.herramientas . Consultado el 23 de diciembre de 2021 .
  3. ^ ab Kaplan, Michael Scott (12 de febrero de 2005). "Por qué y cómo surgió MSLU y más". Ordenándolo todo . Blogs de la red de desarrolladores de Microsoft . Archivado desde el original el 4 de junio de 2011 . Consultado el 22 de diciembre de 2021 . (A veces la gente hace versiones menos caritativas de la pregunta, como ¿Por qué Microsoft esperó tanto para crear MSLU? o ¿Por qué esperaste para crear MSLU hasta que fue demasiado tarde? ¡Pero me quedaré con la versión agradable de la pregunta! ).
  4. ^ "Vino: dlls/unicows/Makefile.in". Vino (versión 6.0.2) . El Proyecto del Vino . 26 de octubre de 2021 . Consultado el 23 de diciembre de 2021 a través de Fossies (The Fresh Open Source Software Archive).

enlaces externos

microsoft

Alternativas de código abierto