Microsoft Layer для Unicode

редактировать

Microsoft Layer для Unicode (или MSLU ) - это программная библиотека для разработчиков программного обеспечения Windows, которая упрощает создание приложений с поддержкой Unicode для Windows 95, Windows 98 или Windows Me. Он также известен как UnicoWS (Unico de для W indows 95/98 / Me S ystems) или UNICOWS.DLL, или даже «коровы».

Microsoft описывает его как «слой поверх Win32 API в Windows 95/98 / Me, чтобы вы могли написать единственную версию Unicode своего приложения и обеспечить ее правильную работу на всех платформы ". Раньше разработчикам программного обеспечения приходилось либо предоставлять две отдельные версии приложения, либо выполнять сложные преобразования строк и принимать решения API во время выполнения.

Содержание
  • 1 Доступность
  • 2 Как это работает
  • 3 Ссылки
  • 4 Внешние ссылки
    • 4.1 Microsoft
    • 4.2 Альтернативы с открытым исходным кодом
Доступность

MSLU был объявлен в марте 2001 г. и впервые доступен в выпуске Microsoft Platform SDK в июле 2001 г., который, возможно, намного позже пика популярности Windows 95/98 / Me.

У него было кодовое имя Годо, который является отсылкой к пьесе Ожидание Годо (в центре которой - неявка человека по имени «Годо» и бесконечное ожидание его), потому что это казалось долгим просрочено.

Как это работает

Обычно Windows API предоставляет как A (ANSI), так и W (широкий -символ) версии большинства функций. В Windows 95/98 / Me реализованы только версии A, и попытка вызвать версию W завершится ошибкой с кодом ошибки, указывающим, что функция не реализована. В линейке операционных систем Windows NT реализованы как версии A, так и W (однако, операционная система обычно внутренне реализует только версию W изначально, а версия A обычно является преобразователем thunk к версии W).

Добавив UNICOWS.LIBв командную строку ссылки перед KERNEL32.LIB, ADVAPI32.LIBили любым другим поддерживаемым Win32 системную библиотеку компоновки, компоновщик будет разрешать ссылочные символы с помощью символа, предоставленного UNICOWS.LIB.

Когда функция расширенных символов вызывается в первый раз во время выполнения, заглушка функции в UNICOWS.LIBсначала получает управление и проверяет, работает ли она в Windows 95/98 / Система Me:

  • Если это так, она динамически загружает UNICOWS.DLL(если она еще не загружена) и передает управление соответствующей заглушке-заглушке там. Заглушка thunking переводит аргументы расширенных символов в строки ANSI, а затем вызывает собственную версию A из ОС, а затем переводит любые возвращенные строки обратно в формат расширенных символов.
  • Если ОС изначально поддерживает версию W (то есть линейка операционных систем Windows NT), тогда заглушка функции обновляет таблицу импорта в памяти, так что будущие вызовы будут напрямую вызывать родную версию W без дополнительных затрат.

Из-за этого метода, когда приложение работает связаны с MSLU, только системы Windows 95/98 / Me будут нуждаться в UNICOWS.DLLво время выполнения, а во всех других версиях Windows есть лишь небольшое снижение производительности для первого вызова функции.

Обычная проблема возникает, когда некоторые программы обновления и удаления переименовывают или удаляют файл OLEDLG.DLL, не позволяя операционной системе загрузить UNICOWS.DLL. Это приводит к тому, что приложения, такие как OpenOffice.org, сообщают, что «Приложение не может запуститься, потому что не может быть найдена одна из необходимых библиотек». Это происходит, даже если в системе установлен UNICOWS.DLL.

Ссылки
  1. ^«Уровень Microsoft для Unicode в системах Windows 95/98 / Me». Портал глобального развития и вычислений. Microsoft. Архивировано из оригинала 16 апреля 2003 г. Получено 25 апреля 2019 г.
  2. ^Каплан, Майкл С. (12 февраля 2005 г.). «Почему / как возник MSLU и многое другое». Сортировка всего V.. 2 !. Архивировано из оригинала 25 июня 2014 г. Получено 25 апреля 2019 г.
Внешние ссылки

Microsoft

Альтернативы с открытым исходным кодом

  • libunicows - предоставляет лицензированную MIT версию только библиотеки ссылок UNICOWS.LIB, но по-прежнему требует предоставленную Microsoft UNICOWS.DLL или Mozilla OPENCOW.DLL.
  • opencow (ранее MZLU) - повторно реализует библиотеку компоновки DLL и LIB как MPL 1.1 / GPL 2.0 / LGPL 2.1, первоначально для проекта Mozilla.
Последняя правка сделана 2021-05-30 10:12:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте