Microsoft Layer for Unicode
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/23 05:17 UTC 版)
ナビゲーションに移動 検索に移動Microsoft Layer for Unicode (MSLU)は、Windows 9x系 (95/98/Me)でUnicode対応のアプリケーションソフトウェアを実行するためのマイクロソフト製のライブラリである。UnicoWS (Unicode for Windows 95/98/Me Systems)やUNICOWS.DLLなどといった名称でも知られている。
マイクロソフトは、MSLUのことを「Windows 95/98/ME上のWin32 APIのレイヤーであり、Unicodeを用いたプログラムだけを書いても全てのプラットフォーム上で動作させることができる」と記述している。[1] MSLUが登場する前は9x系のWindowsに対応しつつ、Unicode対応にもするには、Unicodeを使ったものとそうでないもの(Windows 9x用)の2つをビルドする必要があった。
MSLUは2001年3月に発表され、同年7月の版のMicrosoft Platform SDKから収録され利用可能となったが、この頃は既にWindows 9x系の絶頂期を過ぎた後であった。
動作
Windows APIでは、普通A (ANSI: ANSIコードページに基づくマルチバイト文字)版とW (ワイド文字)版の2つの関数が用意されている。Windows 9x系では、A版のみが実装され、W版を呼び出そうとすると、極一部を除いて実装されていない旨のエラーになる。一方Windows NT系では、A版とW版の両方が実装されている(ただし内部で直接実装されているのはW版であり、A版はW版の呼び出しへ変換するサンクとなっている)。
リンクの際、KERNEL32.LIBやADVAPI32.LIBなどWindows APIのライブラリよりも先にUNICOWS.LIBを指定すると、リンカはUNICOWS.LIBからシンボルを解決するようになる。
そして実行時、最初にワイド文字版の関数が呼ばれたとき、UNICOWS.LIB内へ実行が移る。このとき9x系のWindowsで実行していれば、UNICOWS.DLLを読み込みDLL内のサンクスタブへ実行を移す。このサンクスタブはワイド文字引数をANSI文字列へ変換してネイティブなA版APIを呼び出す役割を果たす。逆にW版APIを持つNT系のWindows上で実行していた場合、メモリ上に存在するインポートテーブルを書き換え、以後余分な負荷をかけずにW版の関数を呼び出せるようにする。
このようにするわけは、MSLUをリンクしたアプリケーションソフトウェアが、9x系のWindowsで実行したときのみUNICOWS.DLLを必要となるようにするためである。また、NT系で実行したときに、余分な手間がかかる機会を最初の1回の関数呼出のときだけに留める効果もある。
外部リンク
断りの無いものは全て英語である。
日本語
- UNICODEプログラムの作り方 — (日本語)
英語
- Official announcement of availability.
- MSDN Magazine article describing MSLU
- MSDN programming reference pages
- Michael Kaplan's blog entries about MSLU internals
- Download of MSLU redistributable (UNICOWS.DLL)
- Usenet discussion group: microsoft.public.platformsdk.mslayerforunicode
- Known bugs in each released MSLU version — マイクロソフト内のMSLUの主要開発者が管理している。
オープンソースの代替品
- libunicows — UNICOWS.LIBの代替のみ。MIT Licenseでライセンスされている。実行時にマイクロソフトのUNICOWS.DLLか次のOPENCOW.DLLが必要。
- Opencow: Open Layer for Unicode — DLLとLIBの実装。旧名MZLU。MPL 1.1/GPL 2.0/LGPL 2.1でライセンスされている。元々はMozillaプロジェクトの一環としてであった。
「Microsoft Layer for Unicode」の例文・使い方・用例・文例
- Microsoftがβ版をランチするのは「NetShow streaming server」で動画や音声をオンデマンドで提供する。
- 5 月15 日の午前8 時30 分から午後3 時まで、Oceanview公園で開催される、毎年恒例のWalk for Petsについてのお知らせです。
- イベントによる収益金の半分は、捨てられたペットのための保護施設であるHome for Petsに使われ、残りはさまざまな動物福祉団体に分配されます。
- 年次監査を行うために、Bradford and Partnersの会計士たちが10 月10 日の午前10 時に当社を訪ねてくる予定です。
- Bradfordの新人会計士2 名が今年の監査を担当すると連絡がありました。
- こんにちは、Bradfordさん。
- 昨日Bradfordさんが受け取られたデスクランプについてお電話を差し上げています。
- 取り違えてしまって申し訳ありませんが、あのランプは別のお客様に送られるはずのもので、誤ってBradfordさんに配送されました。
- Bradfordさんが受け取るはずだった商品は、Anne Keeganさんからの贈り物のご注文でした。
- タックマンモデルとは、チームビルディングにおける5段階、すなわち形成(Forming)、混乱(Storming)、統一(Norming)、機能(Performing)、散会(Adjourning)を示すモデルである。
- 着手する; 〔…の〕端緒を開く 〔for〕.
- 紺 《Oxford 大学およびその選手の色標》.
- 〔音楽会などへの〕優待券, 招待券 〔to, for〕.
- 等位接続詞 《and, but, or, for など; ⇔subordinate conjunction》.
- 【文法】 相関語 《either と or, the former と the latter など》.
- [for a] holiday to [in] France last year. 昨年は休暇をとってフランスへ旅行した.
- (最も奥の), foremost (真っ先の).
- 新大学, 1960 年以降に創設された大学, 板ガラス大学 《Oxford, Cambridge のような石造りの ancient universities, 19 世紀に創設された London 大学のような赤れんが造りの redbrick universities に対して言う; 建築様式がふんだんに plate glass を使ってモダンなことから》.
- コンセプション岬 《California 州にある》.
- être for this policy? この政策はどんな存在理由があるのか.
固有名詞の分類
マイクロソフトのAPI |
.NET Remoting ASP.NET Microsoft Layer for Unicode Active Template Library Data Access Objects |
- Microsoft Layer for Unicodeのページへのリンク