setlocale()は挙動がglobalだからなぁ。
もともとmain()の最初に一発 setlocale(LC_CTYPE, "") して安直にI18N/L14Nする、
という使いかた以外あんま考慮されてない気がするし。
実行時にglobalなCロケール切り替えるなんて、マルチスレッドなプログラムなら
論外だべや。

つか、このVC8.0の挙動って何なの?一応規格どおりのlocale対応だったり
するわけ?