[SDK]normaliz.dllのexports誤り
Windows Vista対応のSDKで追加された国際化APIを使ってみたところ、大はまりしました。
VistaにはUnicodeの結合文字を正規化するNormalizeString、正規化されているか判定するAPIIsNormalizedStringが追加されています。
ところがこのAPIを静的リンクしてVistaにて実行すると、「Normalization.dllがありません」と言われます。Dependency Walkerで生成されたexeを調べても、確かにリンクしています。
MSDN Libraryにはnormaliz.dllを使うと書いてあるし、Vistaのnormaliz.dllのexportsセクションにも登録されています(実際はkernel32.dllへの転送のようですが)。
不思議に思ってnormaliz.libをみると…。

libファイルが
。Windows SDKのなかでもnormaliz.libだけ日付が古くておかしいなと思っていたのですが…。
ちなみにnormalization.dllは.NET Framework 2.0に同名のクラスライブラリとして収録されています。今のところ動的リンクするしか道はなさそうです。